perllocallib

How is use local::lib different from use lib?


I don't understand what use local::lib does that regular use lib doesn't. Could someone explain it?


Solution

  • local::lib

    1. Defaults to ~/perl5 if you don't specify a directory (while use lib; is a no-op).

    2. Resolves relative paths to absolute paths before adding them to @INC. (lib just adds the relative path as-is.)

    3. Expands ~ and ~user in the directory name.

    4. Appends /lib/perl5 to the directory you specify. (So use local::lib '/foo'; is somewhat equivalent to use lib '/foo/lib/perl5';.)

    5. Prepends DIR/bin to your PATH, so you can use scripts installed by local modules.