If I have a .pm
file, is there a way I can use
it, without placing it on my @INC
path? I think that would be clearer in my particular use case - clearer than using relative paths or adding this directory to @INC
.
Edit: Clarification:
I was hoping to avoid the necessity to iterate through every item in @INC
, and instead specify directly which file I am interested in. For example, in Node.JS, require('something')
will search the list of paths, but require('/specific/something')
will go directly where I tell it to.
In Perl, I am not certain that this is the same functionality found in require
, but it seems to work.
However, use
statements require barewords. That has left me a little stumped on how to enter an absolute path.
use is evaluated at compile-time, require at run-time. use implicitly calls the import method of the module being loaded, require does not. use excepts arguments in addition to the bareword (to be passed to import), require does not.
A require statement is evaluated at execution time. If the VERSION argument is present between Module and LIST, then the use will call the VERSION method in class Module with the given version as an argument. The default VERSION method, inherited from the UNIVERSAL class.
Description. This function then it demands that the script requires the specified version of Perl in order to continue if EXPR is numeric. If EXPR or $_ are not numeric, it assumes that the name is the name of a library file to be included. You cannot include the same file with this function twice.
You can use this :
use lib '/path/to/Perl_module_dir'; # can be both relative or absolute
use my_own_lib;
You can modify @INC
by yourself (temporarily, no fear, that's what use lib
does too) :
BEGIN{ @INC = ( '/path/to/Perl_module_dir', @INC ); } # relative or absolute too
use my_own_lib;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With