Re: Did I answer this perl question correctly?
Hi,
Yes, "require 'blah.pl';" is correct. You may also want to
look at .pm files and the new "use blah;" directives.
manoj
use Module LIST
use Module
use Module VERSION LIST
use VERSION
Imports some semantics into the current package
from the named module, generally by aliasing
certain subroutine or variable names into your
package. It is exactly equivalent to
BEGIN { require Module; import Module LIST; }
except that Module must be a bareword.
If the first argument to use is a number, it is
treated as a version number instead of a module
name. If the version of the Perl interpreter is
less than VERSION, then an error message is
printed and Perl exits immediately. This is often
useful if you need to check the current Perl
version before useing library modules which have
changed in incompatible ways from older versions
of Perl. (We try not to do this more than we have
to.)
The BEGIN forces the require and import to happen
at compile time. The require makes sure the
module is loaded into memory if it hasn't been
yet. The import is not a builtin--it's just an
ordinary static method call into the "Module"
package to tell the module to import the list of
features back into the current package. The
module can implement its import method any way it
likes, though most modules just choose to derive
their import method via inheritance from the
Exporter class that is defined in the Exporter
module. See the Exporter manpage. If no import
method can be found then the error is currently
silently ignored. This may change to a fatal
error in a future version.
If you don't want your namespace altered,
explicitly supply an empty list:
use Module ();
That is exactly equivalent to
BEGIN { require Module; }
If the VERSION argument is present between Module
and LIST, then the use will call the VERSION
method in class Module with the given version as
an argument. The default VERSION method,
inherited from the Universal class, croaks if the
given version is larger than the value of the
variable $Module::VERSION. (Note that there is
not a comma after VERSION!)
Because this is a wide-open interface, pragmas
(compiler directives) are also implemented this
way. Currently implemented pragmas are:
use integer;
use diagnostics;
use strict qw(subs vars refs);
use subs qw(afunc blurfl);
These pseudo-modules import semantics into the
current block scope, unlike ordinary modules,
which import symbols into the current package
(which are effective through the end of the file).
There's a corresponding "no" command that
unimports meanings imported by use, i.e., it calls
unimport Module LIST instead of import.
no integer;
no strict 'refs';
If no unimport method can be found the call fails
with a fatal error.
See the perlmod manpage for a list of standard
modules and pragmas.
--
Pedantry crams our heads with learned lumber, and takes out our
brains to make room for it. -- Colton
Manoj Srivastava <srivasta@acm.org> <http://www.datasync.com/%7Esrivasta/>
Key C7261095 fingerprint = CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E
--
To UNSUBSCRIBE, email to debian-user-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: