Le meilleur du CPAN

Sébastien Aperghis-Tramoni, sebastien@aperghis.net

CPAN

  • Comprehensive Perl Archive Network

  • collection centralisée et distribuée de modules

  • http://www.cpan.org/

  • 4.0 Go, plus de 12500 modules, plus de 6000 auteurs

  • 253 miroirs

CPAN

  • « CPAN is the language, Perl is just its syntax » -- Audrey Tang

  • véritable richesse de Perl

CPAN - Sélection

  • shell

    • 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 })
              if $options{help};

CPAN - Sélection

  • programmes

    • Proc::Daemon

    • IPC::Run

    •     my @cmd = qw(ps auwx);
          run \@cmd, \$input, \$output, \$errors or die "$cmd[0]: $?"

CPAN - Sélection

  • manipulation de données

    • List::Util

    •     first max maxstr min minstr reduce shuffle sum
    • List::MoreUtils

    •     any all none notall each_array pairwise natatime mesh zip uniq minmax
  • expressions régulières

    • Regexp::Common

    • Regexp::Assemble

CPAN - Sélection

  • date et heure

    • Time::HiRes

    • Date::Parse

    • DateTime

    • DateTime::Set, DateTime::Span

    • DateTime::Calendar:: Chinese, Christian, Coptic, FrenchRevolutionary, Hebrew, Japanese, Mayan, Pataphysical

CPAN - Sélection

  • XML

    • XML::LibXML, XML::LibXSLT, XML::Twig

    • XML::Simple, XML::Tiny

  • sérialisation

    • Storable

    • YAML, YAML::Syck, YAML::XS, YAML::Any

    • JSON, JSON::Syck, JSON::XS, JSON::Any

CPAN - Sélection

  • courriel

    • MIME::Lite, MIME::Parser, Mail::Box

    • Email::Simple, Email::MIME, Email::Folder et tous les modules du Perl Email Project

    • Net::SMTP, Net::POP3, Net::IMAP, IMAP::Admin

CPAN - Sélection

  • web

    • LWP::UserAgent, LWP::Simple

    • LWP::Parallel, HTTP::Async

    • WWW::Mechanize

    • Web::Scraper

  • web, côté serveur

    • HTTP::Daemon, HTTP::Server::Simple, HTTP::Server::Brick

    • CGI, CGI::Simple, CGI::PathInfo

CPAN - Sélection

  • HTML

    • HTML::Parser, HTML::TreeBuilder, WebService::Validator::HTML::W3C

CPAN - Sélection

  • protocoles réseau

    • Net::FTP, Net::SSH, Net::SCP, Net:LDAP, Net::NNTP, Net::RADIUS, Net::TacacsPlus, Net::SIP

    • Net::DNS, Net::Ping, Net::DHCP

  • réseau bas niveau

    • Net::Pcap, Net::Frame, Net::Packet

CPAN - Sélection

  • bases de données

    • Text::CSV_XS

    • DBI

    • MySQL, PostgreSQL, SQLite, Oracle, JDBC, ODBC, Sybase, ADO DB, Unify et encore plus...

    • DBI::Proxy, DBD::Gofer

    • DBIx::Simple

CPAN - Sélection

  • ORM

    • Class::DBI, DBIx::Class

    • Tangram, Alzabo, Rose::DB::Object, DBIx::DataModel

CPAN - Sélection

  • templates

    • HTML::Template, Petal, Mason, Template Toolkit

  • frameworks web modernes

    • Maypole, Catalyst, Jifty

CPAN - Sélection

  • objets

    • Class::Accessor

    • Class::InsideOut, Object::InsideOut

    • Moose

CPAN - Sélection

  • outils

    • Module::Starter

    • ack

    • Perl::Critic

  • debuging

    • XXX

    • Devel::SimpleTrace

    • Devel::Peek

    • Devel::Size

CPAN - Sélection

  • langages

    • Inline : C, Java, Python, Ruby, Tcl, Befunge, Lua

  • bibliothèques externes

    • XS

    • Devel::PPPort

    • SWIG

    • P5NCI

CPAN - Sélection

  • 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 - Sélection

  • archivage

    • Archive::Tar, Archive::Zip, Compress:Zlib, Compress:Bzip2

  • fichiers

    • File::Spec, Path::Class

    • File::Find::Rule, File::Next, File::Wildcard

    • File::HomeDir, File::ShareDir

    • File::Slurp File::Tail, File::Temp

CPAN - Sélection

    bureautique

    • Spreadsheet::WriteExcel, Spreadsheet::ParseExcel

    • OpenOffice::OODoc, Spreadsheet::ReadSXC

    • Spreadsheet::Read, Spreadsheet::Write

    • PDF::API2

  • images

    • GD, Image::Magick, Gimp, Imager

Questions ?

Merci