in reply to Finding relative path to called script

You could use caller and dirname to find the scripts current relative directory then chdir to it. I.e. put this at the top of your script.pl
BEGIN { use File::Basename; chdir((sub { return dirname((caller(0))[1]) })->()); }
The code must be exceuted in a BEGIN block before any other modules are loaded. The anonymous sub gives caller some context. Hope that helps :)