Here's a piece of Perl code that loads in an external module.
push(@INC, "/var/opt/OV/bin/OpC/monitor");
eval { require "monitor_utils.pm"; };
if ($@) {
print STDERR "could not load monitor_utils.pm: $@\n";
exit 1; }
It comes from a delegate's existing application, and is worthy of further comment:
• The @INC list is the places from which Perl loads modules, and the code adds an extra place to that list.
•
require rather than
use pulls the module in, since
use happens at compile time, and so would happen BEFORE the extension to @INC.
• The
require is within an
eval so that any error condition can be trapped, rather than the code crashing, if it failed.
•
$@ is the error report from the eval. If it's empty, that's good news.
• the application exits with a '1' error code if the require fails - at OS level, 1 is an error and 0 is a success.
(written 2009-06-12)
Associated topics are indexed under
P219 - Perl - Libraries and Resources [3377] What do I mean when I add things in Perl? - (2011-08-02)
[3101] The week before Christmas - (2010-12-23)
[3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
[2931] Syncronise - software, trains, and buses. Please! - (2010-08-22)
[2427] Operator overloading - redefining addition and other Perl tricks - (2009-09-27)
[2229] Do not re-invent the wheel - use a Perl module - (2009-06-11)
[1865] Debugging and Data::Dumper in Perl - (2008-11-02)
[1863] About dieing and exiting in Perl - (2008-11-01)
[1444] Using English can slow you right down! - (2007-11-25)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1235] Outputting numbers as words - MySQL with Perl or PHP - (2007-06-17)
[1219] Judging the quality of contributed Perl code - (2007-06-06)
[760] Self help in Perl - (2006-06-14)
[737] Coloured text in a terminal from Perl - (2006-05-29)
[712] Why reinvent the wheel - (2006-05-06)
[358] Use standard Perl modules - (2005-06-25)
[357] Where do Perl modules load from - (2005-06-24)
[112] Avoid the wheel being re-invented by using Perl modules - (2004-11-08)
[86] Talk review - Idiomatic Perl, David Cross - (2004-10-12)
571b
Some other Articles
Handling nasty characters - Perl, PHP, Python, Tcl, LuaTaking a pride in the communityAlumni - revisiting and supporting the old UniversitySending awkward characters by email in PerlLoading external code into Perl from a nonstandard directoryTransforming data in Perl using lists of lists and hashes of hashesWhy sendmail one way, and pop3 the other?What is CGI.pm / A dozen new examplesRunning a piece of code is like drinking a pint of beer