http://qs1969.pair.com?node_id=670876

why_bird has asked for the wisdom of the Perl Monks concerning the following question:

Dear all,

I'm trying to install Readonly.pm. I couldn't install at the default path as I don't have root permission.
I've therefore installed it in ~misc/perl_lib, where I do have permissions, by typing

perl Makefile.PL PREFIX=~/misc/perl_lib;
make;
make test;
make install;

I then copied Readonly.pm to ~/misc/perl_lib (it was buried in ~/misc/perl_lib/lib/perl5/site_perl/5.8.5/ ) and added
... use lib '~/misc/perl_lib'; ...
to the top of my script. I got a can't locate Readonly error, so I tried adding
... use lib '~/misc/perl_lib/lib/perl5/site_perl/5.8.5/'; ...
but still got the can't find error, as below, even though the correct diretories seem to be in @INC:

Can't locate Readonly.pm in @INC (@INC contains:
~/misc/perl_lib/lib/perl5/site_perl/5.8.5/
~/misc/perl_lib
/usr/lib64/perl5/5.8.5/x86_64-l....etc

Any suggestions??
thanks!

Replies are listed 'Best First'.
Re: problem installing perl modules without root permission
by almut (Canon) on Feb 28, 2008 at 10:47 UTC

    In contrast to the typical Unix shell, Perl does not expand ~ to your home directory, so you'll have to do that yourself, i.e. something like '/home/username/...', or "$ENV{HOME}/..." (if HOME is set in your environment).

    (for the sake of correctness: I updated the $ENV{HOME} part a couple of seconds after my initial post... thus glide's reply)

      ... or use glob to expand the tilde.
      Hi,

      in a unix environment, you can also use the $ENV{HOME}

Re: problem installing perl modules without root permission
by why_bird (Pilgrim) on Feb 28, 2008 at 11:30 UTC
    thankyou, solved my problem. :)