| |||||||||||
| |||||||||||
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;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 {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 PerlP219 - Perl - Libraries and Resources
Some other Articles
Binary Large Objects or barsSpring 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 pageThis 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). |
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 707126 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho | |||||||||||