NAME
lib - manipulate @INC at compile time
lib - manipulate @INC at compile time
SYNOPSIS
use lib LIST;
use lib LIST;
no lib
LIST;
DESCRIPTION
This is a small simple module which simplifies the manipulation of @INC
at compile time.
This is a small simple module which simplifies the manipulation of @INC
at compile time.
It is typically used to add extra directories to
perl's search path so
that later `use' or `require' statements will find modules which are not
located on perl's default search path.
that later `use' or `require' statements will find modules which are not
located on perl's default search path.
Adding directories to @INC
The parameters to `use lib' are added to the start of
the perl search
path. Saying
path. Saying
use lib
LIST;
is *almost* the same as saying
BEGIN { unshift(@INC, LIST)
}
For each directory in LIST (called $dir here) the lib
module also checks
to see if a directory called $dir/$archname/auto exists. If so the
$dir/$archname directory is assumed to be a corresponding architecture
specific directory and is added to @INC in front of $dir.
to see if a directory called $dir/$archname/auto exists. If so the
$dir/$archname directory is assumed to be a corresponding architecture
specific directory and is added to @INC in front of $dir.
To avoid memory leaks, all trailing duplicate entries
in @INC are
removed.
removed.
Deleting directories from @INC
You should normally only add directories to @INC. If
you need to delete
directories from @INC take care to only delete those which you added
yourself or which you are certain are not needed by other modules in
your script. Other modules may have added directories which they need
for correct operation.
directories from @INC take care to only delete those which you added
yourself or which you are certain are not needed by other modules in
your script. Other modules may have added directories which they need
for correct operation.
The `no lib' statement deletes all instances of each
named directory
from @INC.
from @INC.
For each directory in LIST (called $dir here) the lib
module also checks
to see if a directory called $dir/$archname/auto exists. If so the
$dir/$archname directory is assumed to be a corresponding architecture
specific directory and is also deleted from @INC.
to see if a directory called $dir/$archname/auto exists. If so the
$dir/$archname directory is assumed to be a corresponding architecture
specific directory and is also deleted from @INC.
Restoring original @INC
When the lib module is first loaded it records the
current value of @INC
in an array `@lib::ORIG_INC'. To restore @INC to that value you can say
in an array `@lib::ORIG_INC'. To restore @INC to that value you can say
@INC =
@lib::ORIG_INC;
SEE ALSO
FindBin - optional module which deals with paths relative to the source
file.
FindBin - optional module which deals with paths relative to the source
file.
AUTHOR
Tim Bunce, 2nd June 1995.
Tim Bunce, 2nd June 1995.
-----Original Message-----
From: John V. Pataki [mailto:[EMAIL PROTECTED]]
Sent: 12 October 2001 16:52
To: Perl-Unix-Users
Subject: [Perl-unix-users] (no subject)All,Either via downloading and running make, install, etc. or by running perl -MCPAN -e shell ....how do I specify where the module is to be installed?I want to specify a local lib ( that is not a part of the perl installation directory structure ) for some modules to be installed.I am not sure what tells the make command or CPAN.pm where to install it and how to override this (as an option).Thanks,John