I’ve got several Perl modules installed on my hosting machine in ~/perl
, how do I add them to Perl module path? Setting PERL5LIB
or unshift
ing the paths to @INC
surely works, but the environment variable does not help when running as a CGI script and the @INC
way is not very portable. Is there a better way? This has to be a common problem, am I missing something?
相关问题
- $ENV{$variable} in perl
- Highlight parent path to the root
- Is it possible to pass command-line arguments to @
- How to get a fixed number of evenly spaced points
- Redirecting STDOUT and STDERR to a file, except fo
相关文章
- Running a perl script on windows without extension
- linux / libusb get usb device path
- How to get server path of physical path ?
- Comparing speed of non-matching regexp
- Can NOT List directory including space using Perl
- Extracting columns from text file using Perl one-l
- Lazy (ungreedy) matching multiple groups using reg
- How do I tell DBD::mysql where mysql.sock is?
A cleaner way to do it imo is :
there are other interesting and good ways to do it that can be found here:
http://www.slideshare.net/pfig/cpan-training-presentation/
Also, re: CGI scripts, you CAN define PERL5LIB paths for your CGI Env, it just depends on your webhost.
Some Webhosts permit specific control of env variables for the CGI Enviroment, and you have to just set them, others may have a "permit" list that allows variables visible at start time appear in local scope.
May help to read up on how to do this on your specific HTTP server.
There is one more option, if setting ENV is not to your taste: local::lib
Which searches some predefined paths automatically.
PERL5LIB works just fine for CGI scripts. You just have to set the variable in the right place, such as the server configuration. Which webserver are you using? For Apache, I use the SetEnv directive from mod_env.
@INC is portable. The paths you put in there may not be the same on every machine, but you shouldn't have a problem the with variable itself.
Have you read the FAQ entries in perlfaq8: