GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  LIB::CORE::ONLY (3)

.ds Aq ’

NAME

lib::core::only - Remove all non-core paths from @INC to avoid site/vendor dirs

CONTENTS

SYNOPSIS



  use lib::core::only; # now @INC contains only the two core directories



To get only the core directories plus the ones for the local::lib in scope:



  $ perl -mlocal::lib -Mlib::core::only -Mlocal::lib=~/perl5 myscript.pl



To attempt to do a self-contained build (but note this will not reliably propagate into subprocesses, see the CAVEATS below):



  $ PERL5OPT=-mlocal::lib -Mlib::core::only -Mlocal::lib=~/perl5 cpan



Please note that it is necessary to use local::lib twice for this to work. First so that lib::core::only doesn’t prevent local::lib from loading (it’s not currently in core) and then again after lib::core::only so that the local paths are not removed.

DESCRIPTION

lib::core::only is simply a shortcut to say please reduce my @INC to only the core lib and archlib (architecture-specific lib) directories of this perl.

You might want to do this to ensure a local::lib contains only the code you need, or to test an App::FatPacker tree, or to avoid known bad vendor packages.

You might want to use this to try and install a self-contained tree of perl modules. Be warned that that probably won’t work (see CAVEATS).

This module was extracted from local::lib’s --self-contained feature, and contains the only part that ever worked. I apologise to anybody who thought anything else did.

CAVEATS

This does <B>notB> propagate properly across perl invocations like local::lib’s stuff does. It can’t. It’s only a module import, so it <B>only affects the specific perl VM instance in which you load and B>import()<B> itB>.

If you want to cascade it across invocations, you can set the PERL5OPT environment variable to ’-Mlib::core::only’ and it’ll sort of work. But be aware that taint mode ignores this, so some modules’ build and test code probably will as well.

You also need to be aware that perl’s command line options are not processed in order - -I options take effect before -M options, so



  perl -Mlib::core::only -Ilib



is unlike to do what you want - it’s exactly equivalent to:



  perl -Mlib::core::only



If you want to combine a core-only @INC with additional paths, you need to add the additional paths using -M options and the lib module:



  perl -Mlib::core::only -Mlib=lib

  # or if youre trying to test compiled code:

  perl -Mlib::core::only -Mblib



For more information on the impossibility of sanely propagating this across module builds without help from the build program, see <http://www.shadowcat.co.uk/blog/matt-s-trout/tainted-love> - and for ways to achieve the old --self-contained feature’s results, look at App::FatPacker’s tree function, and at App::cpanminus’s --local-lib-contained feature.

AUTHOR

Matt S. Trout <mst@shadowcat.co.uk>

LICENSE

This library is free software under the same terms as perl itself.

COPYRIGHT

(c) 2010 the lib::core::only AUTHOR as specified above.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 LIB::CORE::ONLY (3) 2014-01-20

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.