[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: