Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: perl beginner question

by eye (Chaplain)
on Jun 02, 2009 at 14:24 UTC ( #767603=note: print w/ replies, xml ) Need Help??


in reply to perl beginner question

Several people have already made good suggestions, but this is one of those things with lots of answers.

When the .pm file will not be in the same directory as the main script, I'm fond of using the lib pragma.

When the .pm file will be in the same directory as the main script, it is sometimes easier to skip the package declaration in the module. This will place everything from the module in the "main" package namespace. This is not a good idea for code that will be used in a variety of projects, but may be useful when intended for a group of related scripts that share code.


Comment on Re: perl beginner question
Re^2: perl beginner question
by ikegami (Pope) on Jun 02, 2009 at 14:56 UTC

    When the .pm file will not be in the same directory as the main script, I'm fond of using the lib pragma.

    Even when it is in the same directory.

    $ dir test/ total 8 -rw------- 1 eric users 21 2009-06-02 10:53 Module.pm -rwx------ 1 eric users 29 2009-06-02 10:54 script.pl* $ cat test/script.pl #!/usr/bin/perl use Module; $ cat test/Module.pm package Module; 1; $ test/script.pl Can't locate Module.pm in @INC (@INC contains: /home/eric/lib/perl5/i4 +86-linux-gnu-thread-multi /home/eric/lib/perl5 /etc/perl /usr/local/l +ib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/p +erl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . +) at test/script.pl line 2. BEGIN failed--compilation aborted at test/script.pl line 2.

    It's bad to assume the working directory is set to the directory in which the script resides. Fix:

    use Cwd qw( realpath ); use File::Basename qw( dirname ); use lib dirname(realpath($0));

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://767603]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (9)
As of 2014-07-23 06:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (133 votes), past polls