To install perl modules without root permission, this seems to work for me within cpan:
o conf mbuildpl_arg "\
--lib=~/myperl/lib \
--installman1dir=~/myperl/man/man1 \
--installman3dir=~/myperl/man/man3 \
--installscript=~/myperl/bin \
--installbin=~/myperl/bin \
--install_base=~/myperl"
o conf makepl_arg "\
LIB=~/myperl/lib \
INSTALLMAN1DIR=~/myperl/man/man1 \
INSTALLMAN3DIR=~/myperl/man/man3 \
INSTALLSCRIPT=~/myperl/bin \
INSTALLBIN=~/myperl/bin \
INSTALL_BASE=~/myperl"
o conf commit
Then add something like
export PERL5LIB=~/myperl/lib:~/myperl/lib/perl5/site_perl/5.10.0${PERL5LIB:+:}$PERL5LIB
to your .zshenv or environment profile. I had to add the site_perl dir because Sub::Uplevel installed there, yes, I’m too lazy to investigate. So beware of strange makefiles.
Now you can restart cpan with the PERL5LIB environment set and should be able to install modules.
I had to switch INSTALL_BASE for PREFIX in the past, ymmv.