Training, Open Source computer languages

PerlPHPPythonMySQLhttpd / TomcatTclRubyJavaC and C++LinuxCSS

Search our site for:
Home Accessibility Courses Diary The Mouth Forum Resources Site Map About Us Contact
Where do Perl modules load from
When you're writing a Perl program, you're strongly encouraged to use existing code that's already been written to perform common functions. Not only does this save you time re-coding, but it also means you get code that's already tested and proven, and there's only one piece of code to be maintained for each piece of functionallity thereafter rather than two.

Shared (re-used) code may come as part of the Perl distribution - modules like Carp and File::Compare. It may be more specialist code that you download from the CPAN - for example DBI and DBD. Or it may be code that's just shared within your organisation or even just your department or between your personal applications. And in all cases, you "pull" the code into your program with a use statement:

use Carp;
use File::Compare;
use toothbrush;


Where does your Perl program load these modules from? It uses the list @INC which is prepopulated with each of the directories where Perl should look in turn. If you want to add some directories from the command line too, you can use the -I option to perl (see man perlrun for details. But what if you want to add an extra directory or two in your program? You're allowed to change @INC right enough, but even if you do so ahead of your use statement you'll be too late because the use is interpretted at compile time.

Solution? Modify your @INC list in a BEGIN block, since BEGIN blocks are interpretted at compile time too. Here's an example:

BEGIN {
push @INC,"extrabitz";
}

use toothbrush;


The directory "extrabitz" (a subdirectory of the current directory when the program is run) is added onto the end of the list of places for Perl to look ... and in this case, that's probably where it will find "toothbrush".

And if you even wonder what your Perl program has loaded from where, the information is available to you in the %INC hash. Perhaps that should be another day's story!


(written 2005-06-24 20:48:11)

 
Associated topics are indexed under
P209 - Subroutines in Perl
P219 - Perl - Libraries and Resources

Back to
Sudoku helper or sudoku cheat
Previous and next
or
Horse's mouth home
Forward to
Use standard Perl modules

Some other Articles
Binary Large Objects or bars
Spring turns to Summer
Chicken soup without the religion
Use standard Perl modules
Where do Perl modules load from
Sudoku helper or sudoku cheat
Context in Perl
Ballooning from Bath
Wimbledon Neck
Improved mining techniques!
1636 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

© WELL HOUSE CONSULTANTS LTD., 2008: Well House Manor • 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho