use File::Spec::Functions qw( rel2abs splitpath catpath ); my $RealBin = $0; for( $RealBin ) { $_ = readlink($_) while -l $_; $_ = catpath( (splitpath rel2abs($_))[0,1] ); }