Comprehensive Perl Archive Network
collection centralisée et distribuée de modules
5.6 Go, environ 17 000 distributions, environ 4 000 auteurs
201 miroirs
« CPAN is the language, Perl is just its syntax » -- Audrey Tang
véritable richesse de Perl
connaître les bons modules
Getopt::Long
Pod::Usage
my %options = ( debug => 0, ); GetOptions(\%options, qw{ help|h! version|V! debug|d! config|c=s }) or pod2usage(0); pod2usage({ -verbose => 2, -exitval => 0, -noperldoc => 1 }) if $options{help};
Proc::Daemon
, Proc::Background
IPC::Run
my @cmd = qw(ps auwx); run \@cmd, \$input, \$output, \$errors or die "$cmd[0]: $?"
List::Util
first max maxstr min minstr reduce shuffle sum
List::MoreUtils
any all none notall each_array pairwise natatime mesh zip uniq minmax
Regexp::Common
while (<>) { /$RE{num}{real}/ and print "got a number"; /$RE{net}{IPv4}/ and print "got an IP address"; }
Regexp::Assemble
my $ra = Regexp::Assemble->new; $ra->add( "cra+ck", "cru+nch", "clu+n+ck" ); print $ra->re; # "(?-xism:c(?:r(?:u+nch|a+ck)|lu+n+ck))"
Text::Match::FastAlternatives
join "|", @words
en bien plus efficace
Time::HiRes
Date::Parse
$time = str2time($date); ($sec, $min, $hour, $day, $month, $year, $zone) = strptime($date);
DateTime
DateTime::Set
, DateTime::Span
DateTime::Calendar::
Chinese, Christian, Coptic, FrenchRevolutionary,
Hebrew, Japanese, Mayan, Pataphysical
bignum
, bigint
, bigrat
PDL (Perl Data Language == MatLab en Perl)
Archivage
Archive::Tar
, Archive::Zip
, Compress:Zlib
, Compress:Bzip2
Chemins
File::Spec
, Path::Class
File::Find::Rule
, File::Next
, File::Wildcard
File::HomeDir
, File::ShareDir
Contenu
File::Slurp
, File::Tail
, File::Temp
XML::LibXML
, XML::LibXSLT
my $parser = XML::LibXML->new; my $doc = $parse->parse_file($file); my ($node) = $doc->findnodes("/root/path/node[1]");
XML::SAX
XML::Twig
XML::Tiny
Data::Dumper
, Storable
YAML
, YAML::XS
YAML::DumpFile($file, \%complex_structure); my $struct = YAML::LoadFile($file);
JSON
, JSON::XS
my $struct = from_json( $request->content ); $response->add_content( to_json(\%data) );
MIME::Lite
, MIME::Parser
Net::SMTP
, Net::POP3
Email::Simple
, Email::MIME
, Email::Folder
et tous les
modules du Perl Email Project
Mail::IMAPClient
, Mail::Box
Bureautique
Text::CSV_XS
Spreadsheet::WriteExcel
, Spreadsheet::ParseExcel
OpenOffice::OODoc
, Spreadsheet::ReadSXC
Spreadsheet::Read
, Spreadsheet::Write
PDF::API2
Images
GD
, Image::Magick
, Gimp
, Imager
Protocoles réseau
Net::FTP
, Net::SSH
, Net::SCP
Net::DNS
, Net::Ping
, Net::DHCP
Net::LDAP
, Net::NNTP
, Net::RADIUS
Net::TacacsPlus
, Net::SIP
, Net::STOMP
...
Réseau bas niveau
Net::Pcap
, Net::Frame
, Net::Packet
POE (Perl Object Environment)
Côté client
LWP::UserAgent
, LWP::Simple
my $page = get($url);
LWP::Parallel
, HTTP::Async
WWW::Mechanize
Web::Scraper
WWW::Scripter
Côté serveur
CGI
, CGI::Simple
, CGI::PathInfo
CGI::Application
Côté serveur
HTTP::Daemon
HTTP::Server::Simple
HTTP::Server::Brick
my $server = HTTP::Server::Brick->new( port => 8888 ); $server->mount("/files" => { path => "/path/to/files" }); $server->mount("/user" => { handler => \&process_user }); $server->start;
POE::Component::Server::HTTP
HTTP::Engine
Analyse
HTML::Parser
HTML::TreeBuilder
HTML::DOM
WebService::Validator::HTML::W3C
Génération
HTML::Template
Petal
Mason
Template Toolkit
DBI
MySQL, PostgreSQL, SQLite, Oracle, JDBC, ODBC, Sybase, ADO DB, Unify et plus encore...
DBI::Proxy
, DBD::Gofer
DBIx::Simple
SQL::Abstract
Tangram
, Alzabo
, SPOPS
Class::DBI
, DBIx::Class
Rose::DB::Object
, DBIx::DataModel
, Fey::ORM
Maypole
Jifty
Catalyst
Test::More
, Test::Builder
Devel::Cover
Test::Deep
, Test::LongString
Test::Exception
, Test::NoWarnings
Test::MockModule
, Test::MockObject
Test::Class
(xUnit)
Test::LectroTest
Module::Starter
, Dist::Zilla
ack
Perl::Tidy
Perl::Critic
Perl::Metrics::Simple
Smart::Comments
XXX
Devel::SimpleTrace
Devel::Graph
Devel::TraceLoad
, Devel::TraceUse
Devel::LeakTrace
Devel::ptkdb
: perl -d: ptkdb ...
Devel::ebug
: perl -d:ebug ...
Langages
Inline : C, Java, Python, Ruby, Tcl, Befunge, Lua
Bibliothèques externes
XS
Devel::PPPort
SWIG
P5NCI
Interfaces graphiques
Tk, Gtk, WxWidgets, Qt, Prima
GUI natives : Win32, Aqua (Mac OS X), X11
Pilotage natif des OS
Mac::Carbon
, Mac::Glue
Win32
, Win32::OLE
, W2RK::WMI
CPAN, c'est bon, mangez-en