in reply to Existing module not found in path
@INC is an array that contains the paths that Perl searches when it attempts to find the modules you have specified in use directives. The default is set at the compile-time of the Perl executable so if you want to use modules from other paths you have to either recompile Perl or change @INC when your script first starts up. If you've installed Net::POP3 in a local subdirectory you need to add that path to the @INC array before you load the module. The way to do this is in a BEGIN block in your script. The reason you must do this in the BEGIN block is because the use directive is a compile-time directive for perl and changing the @INC variable in the main part of your script (at run-time) would have no effect on it. The BEGIN block, however, is executed at compile time and the change to @INC would take effect before perl handled the use. Anyway, here's a simple code snippet:
sub BEGIN { unshift @INC, "<path where Net::POP3 is installed>"; } use Net::POP3; # script continues
HTH
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Existing module not found in path
by Anonymous Monk on May 26, 2003 at 17:44 UTC |