Perl – How to install a CPAN module into a local directory


I'm using a hosted Linux machine so I don't have permissions to write
into the /usr/lib directory.

When I try to install a CPAN module by doing the usual:

perl Makefile.PL
make test
make install

That module is extracted to a blib/lib/ folder. I have kept use
but it still the compiler says module can not be
found. I have tried copying the .pm file into local directory and kept
require ModuleName but still it gives me some error.

How can I install a module into some other directory and use it?

Best Solution

Other answers already on Stackoverflow:

From perlfaq8:

How do I keep my own module/library directory?

When you build modules, tell Perl where to install the modules.

For Makefile.PL-based distributions, use the INSTALL_BASE option when generating Makefiles:

perl Makefile.PL INSTALL_BASE=/mydir/perl

You can set this in your configuration so modules automatically install in your private library directory when you use the shell:

% cpan
cpan> o conf makepl_arg INSTALL_BASE=/mydir/perl
cpan> o conf commit

For Build.PL-based distributions, use the --install_base option:

perl Build.PL --install_base /mydir/perl

You can configure to automatically use this option too:

% cpan
cpan> o conf mbuildpl_arg '--install_base /mydir/perl'
cpan> o conf commit