Respected monks have mentioned drawbacks to this approach, and alternative methods.   This method has worked well for me so far, but I'd encourage you to read and consider the other posts in this thread. Props to da monks for feedback.   8^)


Install a second, parallel & independant, Perl on a Debian host without breaking Debian's dependance on its own provided Perl, *and* without dipping into Debian testing or unstable distributions.


The Debian GNU/Linux distribution uses Perl for some of its key/core operations, and many Debian packages require deb-packaged perl modules, which are generally quite old.   This can cause problems for a Debian-using Perler, which boil down to conflicts between Debian and Perl's package management systems.

By installing a parallel Perl, a Debian user can install deb-packaged Perl modules to his heart's content, while still intalling ofttimes newer modules from CPAN to the second Perl.   The only drawback I know of is that modules will need to be installed separately for each Perl install - via apt-get for system, and CPAN for user.

Comments, corrections, and improvements are welcome and invited.


  • working installation of Debian Woody
  • active Internet connection
  • competence (not necessarily expertise) with both Linux and Perl
  • Debian Woody (stable)
  • Debian Perl 5.6.1
  • Perl Perl 5.8.0


1.fetch, extract, and install Perl 5.8.0

tar -zxvf stable.tar.gz
cd perl-5.8.0
rm -f
sh Configure -de
make test
make install

2.revert system Perl to Debian-standard 5.6.1

cd /usr/bin
rm perl
ln -isv perl5.6.1 perl

3.set user Perl to 5.8.0

cd /usr/local/bin
rm perl
ln -isv perl5.8.0 perl

4.confirm new Perl 5.8.0 is user Perl

perl -e 'print "$]\n";' should tell you "5.008".
Make sure this is right before proceeding to step 5, or you won't be doing what you want to be doing, and may very well hork your Debian install beyond recognition.   Here there be dragons.

5.install desired modules

Use your favorite method (CPAN or CPAN autobundle or CPANPLUS or fetch/perl Makefile.PL/make/make test/make install) to install your favorite modules for your favorite shiny new Perl.

A snippet to list installed non-core modules:

#!/usr/bin/perl -w # 2003-08-22 07:05 CDT ybiC # commandline tool gens list of installed non-core Perl modules & thei +r versions # shamelessly stolen from, I mean inspired by, jeffa & hacker use strict; use ExtUtils::Installed; my $delim = shift || ' '; my $inst = ExtUtils::Installed->new(); print $inst->version($_), $delim, $_, $/, for $inst->modules();

perldoc perllocal will do similarly, but with significantly more verbose output.


check path and Perl versions

set|grep PATH
PATH= ...:/usr/local/bin:/usr/bin:...
whereis perl
  perl: /usr/bin/perl /usr/local/bin/perl ...

perl -e 'print "$]\n";' 5.008
/usr/local/bin/perl -e 'print "$]\n";' 5.008
/usr/bin/perl -e 'print "$]\n";' 5.006001

Perl binary executables

/usr/bin/perl              symlinked to ./perl5.6.1 by /me
 /usr/bin/perl-5.6          Debian-standard
 /usr/bin/perl5.6.1         Debian-standard
 /usr/bin/perl5.8.0         from source
 /usr/local/bin/perl        symlinked to ./perl5.8.o by /me
 /usr/local/bin/perl5.8.0   from source

perl module directories

core debian:
non-core debian:
core from source:
none-core installed by user:

Debian docs


Debian admin/config perl scripts, modules




Thanks to hacker, jeffa, tye, and I forget who else for consciously or otherwise helping me get this much figured out.   Oh yeah, and some guy named vroom.


  • include info from Intrepid's excellent reply below, as viable alternative.
  • clarify problems caused by Debian's internal use of Perl, Debian's CPAN module packaging, and by Perl's CPAN package handling, as suggested below by brer theorbtwo
  • Document making Debian package(s) of additional Perls


2003-09-14   12:55 CDT
  • break out 'sundry notes' into sections
  • number 'actions'
  • add bit o'verbosity to step 4
  • add 'prerequisites'
  • squink CPAN, Debin links to avoid lateral scrolling of page as per brer tye
  • further formatting tweaks for same
  • balanced <readmore> tags
  • clarify verbage in 'objective'
  • fix splleing error as per by brer ChemBoy
  • break out 'background' from 'objective'
  • mention CPAN autobundlue as per ser menolly
  • mention perdoc perllocal
  • add 'to do'
  • correct "cd /usr/bin/perl" (brain|typ)o as perl brer barrd
  • trailing <hr /> for visual separation, instead of equal signs in <h2>s, courtesy brer Aristotle
  • add 'debianize packages' to TODO, courtesy brer Fatvamp