#!perl use Cwd qw( getcwd abs_path ); my ($DIR, $CMD) = $0 =~ m{^(.*)/([^/]+)$}; ! $CMD && ! -d $DIR and ($DIR, $CMD) = (getcwd, $DIR); # "." in $PATH and script invoked without ./ -l $DIR or die "$DIR is not the symlinked folder. Running like this is dangerous!\n"; say "Current dir : ", getcwd; say "Invoking folder: ", $DIR; say "Symlink : ", readlink $DIR; say "Abs path: : ", abs_path $DIR; #### $ mkdir -p tmp/test-a $ ln -s test-a tmp/test $ ln -s tmp/test test $ vi tmp/test/test.pl -- paste above code and save $ perl test/test.pl Current dir : /home/tux Invoking folder: test Symlink : tmp/test Abs path: : /home/tux/tmp/test-a