in reply to Re: try to understand use lib in module
in thread try to understand use lib in module

Ok, thanks, I am trying to understand this,
use lib '/n2p/cf/lib'; use Logger;
Does work. but this is confusing. Someone at work wrote a script with
#!/usr/bin/perl -w # file1.pl use lib '/somewhere/'; require 'somefile.pl';
does this mean, since somefile.pl is not a module, and script, this can be used as script inside of file1.pl.. and not necessarily loaded somefile.pl as module?

Replies are listed 'Best First'.
Re^3: try to understand use lib in module
by runrig (Abbot) on Jul 07, 2007 at 22:53 UTC
    use lib '/n2p/cf/lib'; use Logger;

    If Logger.pm is in /n2p/cf/lib, and /n2p/cf/lib is not in @INC, then that makes sense, or if something else is being imported from that directory. If /n2p/cf/lib is a common directory to import libs from, then you might want to put it in the PERL5LIB environment variable, and get rid of the 'use lib'.

    #!/usr/bin/perl -w # file1.pl use lib '/somewhere/'; require 'somefile.pl';
    This style was common in perl 4 to import libraries (as that's all there was to do the job), so if someone is still writing this way, they should probably be updated, and if possible, somefile.pl should probably be packaged as a proper module. But require takes either a bare word which imports a module, or a string (as in the above example) which imports a specific file name.