Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
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.

Replies are listed 'Best First'.
Re^2: perl beginner question
by ikegami (Patriarch) 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
Domain Nodelet?
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 surveying the Monastery: (4)
As of 2023-10-03 13:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?