CPAN

Hans Dieter Pearcey (hdp@cpan.org)

needs

meta

human factors

sysadmins

managers

yourself

lowest common denominator

$ cpan Foo::Bar

problems

vendor packages

Pull from a newer version

build vendor packages

cpan2dist --format CPANPLUS::Dist::Gentoo Foo::Bar

caveats

wrap site_perl (Debian)

cpan2dist --format CPANPLUS::Dist::Deb
--defaults --dist-opts distdir=`pwd`/debs
Foo::Bar

caveats

bonus: PAR

Foo-Bar-1.23$ make && perl -MPAR::Dist -e blib_to_par

flying cars

unsolved problems

local::lib

~$ eval $(perl -Mlocal::lib)

default

echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)'
>> ~/.bashrc

per-application libraries

in your shell

~/code/MyApp$ eval $(perl -Mlocal::lib=./local)

in scripts/*

use FindBin ();
use local::lib "$FindBin::Bin/../local";

per-application libraries

generate MyApp::local

make-local-lib.pl

# script/myapp_runstuff.pl
use MyApp::local;
# script/myapp_runstuff.pl
use FindBin;
use lib "$FindBin::Bin/../lib";
use MyApp::local;

self-contained

~/code/MyApp$ perl
-Mlocal::lib=--self-contained,./local
-MCPAN -e 'install q(.)'

ups and downs

bonus: distroprefs

example

HDP.Perl-Version.yml

example

FDALY.Test-Deep.yml

distroprefs rock

flying cars

client vs. server

client vs. server

mirror CPAN

benefits

still lacking

filter / augment

flying cars

bonus ideas

the end

thank you!