in reply to Own modules and tainted mode
use lib qw(.);
I would recommend against this in a production environment, since you probably won't know what the current working directory is, and you don't want to accidentally load modules that happen to be lying around in the cwd.
use File::Basename qw(dirname); use Cwd qw(abs_path); use lib dirname(dirname abs_path $0);
You should be able to shorten this to use FindBin; use lib $FindBin::Bin; (see FindBin), although unfortunately that also won't work under taint mode. The problem with relative paths and attempting to figure out the path that the Perl script is located is that an attacker could theoretically fool your Perl script into loading a version of a module with malicious code. So I agree with Corion that you're probably better off just using an absolute pathname. If you need your scripts to be portable, you could consider other methods, like configuration files at known locations.
|
|---|