in reply to cpan problems when /tmp and /var are existing symbolic links
CPAN uses Archive::Zip which uses File::Temp. There, $ENV{TMPDIR} is suggested to set up a writable temp directory. Maybe this works on your system.