... PERL=/usr/bin/perl ... $PERL /full/path/to/some_script.pl ... $PERL /other/full/path/to/other_script.pl ... #### ken@titan ~/tmp/pm_11153844_cron_paths $ pwd /home/ken/tmp/pm_11153844_cron_paths ken@titan ~/tmp/pm_11153844_cron_paths $ ls -lR * lib: total 1 -rw-r--r-- 1 ken None 633 Aug 13 00:38 maintain.pl drwxr-xr-x 1 ken None 0 Aug 13 00:36 Site lib/Site: total 1 -rw-r--r-- 1 ken None 78 Aug 13 00:36 Utils.pm template: total 0 www: total 0 #### ken@titan ~ $ cat /home/ken/tmp/pm_11153844_cron_paths/lib/Site/Utils.pm package Site::Utils; use strict; use warnings; our $VERSION = '1.2.3'; 1; #### ken@titan ~ $ cat /home/ken/tmp/pm_11153844_cron_paths/lib/maintain.pl # standard pragmata use strict; use warnings; # code to get absolute paths use Cwd 'abs_path'; use File::Basename 'dirname'; my ($BIN_DIR, $LIB_DIR, $TEMPLATE_DIR, $WWW_DIR); BEGIN { $BIN_DIR = dirname abs_path __FILE__; $LIB_DIR = abs_path "$BIN_DIR/../lib"; $TEMPLATE_DIR = abs_path "$BIN_DIR/../template"; $WWW_DIR = abs_path "$BIN_DIR/../www"; } # test paths print "\$BIN_DIR[$BIN_DIR]\n"; print "\$LIB_DIR[$LIB_DIR]\n"; print "\$TEMPLATE_DIR[$TEMPLATE_DIR]\n"; print "\$WWW_DIR[$WWW_DIR]\n"; # test 'Site::Utils' found use lib $LIB_DIR; use Site::Utils; print "Site::Utils version: $Site::Utils::VERSION\n"; #### ken@titan ~ $ pwd /home/ken ken@titan ~ $ /usr/bin/perl /home/ken/tmp/pm_11153844_cron_paths/lib/maintain.pl $BIN_DIR[/home/ken/tmp/pm_11153844_cron_paths/lib] $LIB_DIR[/home/ken/tmp/pm_11153844_cron_paths/lib] $TEMPLATE_DIR[/home/ken/tmp/pm_11153844_cron_paths/template] $WWW_DIR[/home/ken/tmp/pm_11153844_cron_paths/www] Site::Utils version: 1.2.3 #### $BIN_DIR[/home/ken/tmp/pm_11153844_cron_paths/bin]