Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Loading external code into Perl from a nonstandard directory

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 as below, or enter http://melksh.am/nnnn for individual articles
P219 - Perl - Libraries and Resources
  [86] Talk review - Idiomatic Perl, David Cross - (2004-10-12)
  [112] Avoid the wheel being re-invented by using Perl modules - (2004-11-08)
  [357] Where do Perl modules load from - (2005-06-24)
  [358] Use standard Perl modules - (2005-06-25)
  [712] Why reinvent the wheel - (2006-05-06)
  [737] Coloured text in a terminal from Perl - (2006-05-29)
  [760] Self help in Perl - (2006-06-14)
  [1219] Judging the quality of contributed Perl code - (2007-06-06)
  [1235] Outputting numbers as words - MySQL with Perl or PHP - (2007-06-17)
  [1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
  [1444] Using English can slow you right down! - (2007-11-25)
  [1863] About dieing and exiting in Perl - (2008-11-01)
  [1865] Debugging and Data::Dumper in Perl - (2008-11-02)
  [2229] Do not re-invent the wheel - use a Perl module - (2009-06-11)
  [2427] Operator overloading - redefining addition and other Perl tricks - (2009-09-27)
  [2931] Syncronise - software, trains, and buses. Please! - (2010-08-22)
  [3009] Expect in Perl - a short explanation and a practical example - (2010-10-22)
  [3101] The week before Christmas - (2010-12-23)
  [3377] What do I mean when I add things in Perl? - (2011-08-02)


Back to
Transforming data in Perl using lists of lists and hashes of hashes
Previous and next
or
Horse's mouth home
Forward to
Sending awkward characters by email in Perl
Some other Articles
Handling nasty characters - Perl, PHP, Python, Tcl, Lua
Taking a pride in the community
Alumni - revisiting and supporting the old University
Sending awkward characters by email in Perl
Loading external code into Perl from a nonstandard directory
Transforming data in Perl using lists of lists and hashes of hashes
Why sendmail one way, and pop3 the other?
What is CGI.pm / A dozen new examples
Running a piece of code is like drinking a pint of beer
4759 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, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 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).

You can Add a comment or ranking to this page

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

PAGE: http://www.wellho.net/mouth/2234_Loa ... ctory.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb