You way want to look into a module like
File::Spec or
Path::Class that allows manipulation of file paths to use the fact that you know this is a path situation.
use File::Spec
sub SriptName {
my ($self) = @_;
my $name = Win32::GetFullPathName($0);
my ($volume, $dirs, $file ) = File::Spec->splitpath( $name );
my (@dirs) = File::Spec->splitdir( $dirs );
$_ = shift @dirs until $_ eq 'scripts';
#drop all suffix (not sure if this is what you want here)
# this could/should also be $file = basename($file)
$file =~ s/\..*//;
return join( ' - ', @dirs, $file)
}