use File::Spec::Functions qw( rel2abs ); use File::Basename qw( dirname ); my $RealBin = $0; $RealBin = readlink($RealBin) while -l $RealBin; $RealBin = dirname( rel2abs($RealBin) );