URL: https://linuxfr.org/news/pour-tout-savoir-du-perl-post-moderne Title: Pour tout savoir du Perl post‐moderne Authors: contra-sh Ysabeau đŸ§¶, Davy Defaud et ZeroHeure Date: 2019ćčŽ07月09æ—„T10:42:12+02:00 License: CC By-SA Tags: perl, perl5, opensuse et awstats Score: 39 Cette dĂ©pĂȘche est un complĂ©ment de [celle qui retrace l’histoire de Perl](https://linuxfr.org/news/sortie-de-perl-5-30-0) Ă  l’occasion de la sortie de la version 5.30. Elle se concentre sur les ressources : documentation, tutoriels, folklore, outils pour dĂ©couvrir et dĂ©velopper en Perl. Pour rappel, [Perl](https://www.perl.org/) est un langage gĂ©nĂ©raliste créé en 1987 par [Larry Wall](https://fr.wikipedia.org/wiki/Larry_Wall). « _Perl continue de prospĂ©rer dans sa troisiĂšme dĂ©cennie grĂące Ă  une communautĂ© d’utilisateurs et de dĂ©veloppeurs trĂšs dynamique._ », _dixit_ [perldelta](https://metacpan.org/pod/distribution/perl/pod/perldelta.pod#Acknowledgements). Perl est distribuĂ© sous une double licence : [Artistic Licence](https://opensource.org/licenses/Artistic-2.0) et [GPL v1+](https://www.gnu.org/licenses/gpl-3.0.html). La plupart des modules du CPAN [suivent Ă©galement ce mĂȘme traitement](https://www.cpan.org/misc/cpan-faq.html#How_is_Perl_licensed). ![Perl 5 raptor](https://camo.githubusercontent.com/039c0b770fdaff0f1418c5afa4296dfaba5f2875/68747470733a2f2f7261772e6769746875622e636f6d2f6b726169682f7065726c2d726170746f722f6d61737465722f6578616d706c652e706e67) _Perl 5 raptor de [kraih](https://github.com/kraih/perl-raptor), licence [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)_ ---- [Perl](https://www.perl.org/) [MetaCPAN](https://metacpan.org/) [Sortie de Perl 5.30.0](https://linuxfr.org/news/sortie-de-perl-5-30-0) ---- # Liens utiles Les paragraphes qui suivent concernant les liens n’ont pas pour but d’ĂȘtre *exhaustifs* mais plutĂŽt de fournir des pointeurs vers des ressources ou d’attiser votre curiositĂ©. ## DĂ©veloppement de Perl core - [perl.git](https://perl5.git.perl.org/perl.git), lĂ  oĂč se trouve le **code de l’interprĂ©teur Perl** et son [miroir sur GitHub](https://github.com/Perl/perl5) ; - [le gestionnaire de tickets de Perl 5](https://rt.perl.org/Public/Search/Results.html?Query=Queue%20=%20%27perl5%27%20AND%20(Status%20=%20%27new%27%20OR%20Status%20=%20%27open%27%20OR%20Status%20=%20%27stalled%27)) (utilise le logiciel Perl [Request Tracker](https://bestpractical.com/request-tracker) le gestionnaire de tickets/patchs) ; - [liste Perl porters](https://lists.gt.net/perl/porters/) ; - [compiler et installer Perl](https://metacpan.org/pod/distribution/perl/INSTALL) Ă  la main (si on ne veut pas du Perl vendor) ; - [perldelta 5.30.0](https://metacpan.org/source/XSAWYERX/perl-5.30.0/pod) dernier journal des modifications ; - [historique trĂšs dĂ©taillĂ© des versions de Perl](https://perldoc.perl.org/perlhist.html) ; - [dĂ©prĂ©ciations](https://metacpan.org/pod/distribution/perl/pod/perldeprecation.pod) ; - [portabilitĂ©](https://perldoc.perl.org/perlport.html). ## Officiel - _[perl.org](https://www.perl.org/)_, la « maison » de Perl ; - [Perl Fundation](https://www.perlfoundation.org/), la fondation Perl ; - [White Camel Awards](https://www.perl.org/advocacy/white_camel/), rĂ©compense annuelle pour des personnes ayant contribuĂ© de maniĂšre importante Ă  Perl. Et ce pas forcĂ©ment avec du code ! ## Modules et installeurs - installeur de modules moderne [cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm), par [Tatsuhiko Miyagawa](https://github.com/miyagawa) ([profil CPAN](https://metacpan.org/author/MIYAGAWA)) ; - [gestionnaire de version Perlbrew](https://perlbrew.pl/) ; - un autre gestionnaire de binaire Perl [plenv](https://github.com/tokuhirom/plenv). [DiffĂ©rences entre perlbrew et plenv](https://weblog.bulknews.net/plenv-alternative-for-perlbrew-7b5bf00a419e). - bundler pour Perl : [Perl carton](https://github.com/perl-carton/carton) qui utilise [cpanfile](https://github.com/miyagawa/cpanfile) ; - liste de modules reconnus [Task::Kensho](https://github.com/EnlightenedPerlOrganisation/task-kensho) ; - [Corelist](http://corelist.rpee.be/), interface Web de l’outil **Corelist** qui permet de connaĂźtre les _core modules_ inclus dans une version de Perl. ## GĂ©nĂ©ral - [Perl Monks](https://www.perlmonks.org/), le _Stack Overflow_ de Perl Ă  moins que _stackoverflow_ soit le _perlmonks_ gĂ©nĂ©raliste :D (OK, on n’est pas vendredi, je sors) ; - [Perl Monks... **encore**](https://www.perlmonks.org/), parce que c’est vraiment bien, mĂȘme si ça ressemble Ă  une grotte ; - [Perldoc (_perl.org_)](https://perldoc.perl.org/) et [Perldoc (_perldoc.pl_)](https://perldoc.pl) ; - [liste de core modules](https://perldoc.perl.org/5.30.0/index-modules-A.html) ; - [lister les dĂ©pendances d’un module CPAN](http://deps.cpantesters.org/) ; - [discussion sur les modules avant la mise sur CPAN](http://prepan.org/) ; - [Perl Maven](https://fr.perlmaven.com/), un Ă©norme site sur Perl ; - _[perlmeme.org](http://perlmeme.org/)_, un site sur Perl (tutoriels, FAQ et autres). ## Autour du CPAN - [NOUVEAU] [CPANdoc](https://cpandoc.grinnz.com/), doc de modules importants ; - [CPAN Testers](http://cpantesters.org/), un site pour gĂ©rer les contructions et rapports de test des modules CPAN ; - [CPAN map](http://mapofcpan.org), carte des espaces de noms CPAN ; - [CPAN Cover](http://cpancover.com), couverture de test des modules CPAN ; - [CPAN TS](https://cpants.cpanauthors.org/), Kwalitee mĂ©triques ; - [CPAN IO](http://cpan.io/) classement des auteurs CPAN selon leur activitĂ©. ## Social - [Perl reddit](https://www.reddit.com/r/perl/) ; - [site de blogs sur Perl](http://blogs.perl.org/) ; - [Perl Mongers](https://www.pm.org/) ; - [les mongueurs de Perl FR](http://www.mongueurs.net/) ; - _[Nice Perl blog](http://niceperl.blogspot.com/)_ ; - [newsletter hebdomadaire](http://perlweekly.com/) ; - _[Perl Hacks](https://perlhacks.com/)_, blog ; - _[Perlsphere](http://perlsphere.net/)_, agrĂ©gateur de blogs ; - confĂ©rences [_Yet Another Perl Conference_](https://fr.wikipedia.org/wiki/Yet_Another_Perl_Conference) [YAPC](https://www.yapc.org/), [YAPC Europe](http://www.yapceurope.org/), les [journĂ©es Perl](https://journeesperl.fr/jp2019/) et Ă©galement [OSDC](http://www.osdc.fr/) (un peu mort, on dirait) ; - des [canaux IRC](https://perldoc.perl.org/5.30.0/perlcommunity.html#IRC), notamment pour les mongueurs français, mojolicious, dancer, catalyst, etc. ; - _[Perl.com](https://www.perl.com/)_, domaine rĂ©cent (malgrĂ© son nom...), un fil d’actualitĂ©s ; - _[Perlbuzz](https://perlbuzz.com/)_, un fil d’actualitĂ©s. ## Docs officielles - [Perl FAQ](https://perldoc.perl.org/perlfaq.html) ; - [des livres](https://perldoc.perl.org/perlbook.html) Ă  propos de Perl : ![Des livres sur Perl](https://i.imgur.com/Z3F34XQ.jpg) _Mon Ă©tagĂšre de livres sur Perl — licence CC BY SA_ - [perlre](https://perldoc.perl.org/perlre.html), la doc des expressions rationnelles ainsi que le [tuto](https://perldoc.perl.org/perlretut.html) et le [_quick start_](https://perldoc.perl.org/perlrequick.html) ![Perl regex](http://imgs.xkcd.com/comics/perl_problems.png) _D’aprĂšs_ [xkcd](https://xkcd.com/1171/) _— Licence CC BY NC_ - la [liste des opĂ©rateurs](https://perldoc.perl.org/perlop.html) et des [fonctions _built‐in_](https://perldoc.perl.org/perlfunc.html) ; - [Ă©criture des modules / paquets](https://perldoc.perl.org/perlmod.html) ou encore [_ici_](https://perldoc.perl.org/perlmodlib.html), Ă©crire un [nouveau module](https://perldoc.perl.org/perlnewmod.html), conseils pour [respecter le style](https://perldoc.perl.org/perlmodstyle.html) dans les modules ; - doc sur la [syntaxe Perl](https://perldoc.perl.org/perlsyn.html) ; - les [rĂ©fĂ©rences](https://perldoc.perl.org/perlref.html) et le [tutoriel](https://perldoc.perl.org/perlreftut.html) ; - la [doc sur les IPC](https://perldoc.perl.org/perlipc.html) ; - la [sĂ©curitĂ© dans Perl](https://perldoc.perl.org/perlsec.html) : _taint checking_ (ou « _data flow analysis_ »), _setuid_, _clean PATH_, protection des attaque de complexitĂ© algorithmiques ; - la doc sur la [gĂ©nĂ©ration de rapports grĂące aux formats](https://perldoc.perl.org/perlform.html) — les *formats* sont une des raisons de la crĂ©ation de Perl, mais restent limitĂ©s et beaucoup moins utilisĂ©s ; - doc du [dĂ©bogueur](https://perldoc.perl.org/perldebug.html) ; le dĂ©bogueur de Perl est lui‐mĂȘme Ă©crit en Perl ;) ; - orientĂ© objet avec Perl ? Doc [perlobj](https://perldoc.perl.org/perlobj.html) et [tuto oo](https://perldoc.perl.org/perlootut.html). ## Tutoriels - _[Perl maven](https://perlmaven.com/perl-tutorial)_ ; - _[Learn Perl in about 2 hours and 30 minutes](https://qntm.org/files/perl/perl.html)_ ; - _[Minimum Viable Perl (MVP)](http://mvp.kablamo.org/)_ ; - _[Perl-begin](http://perl-begin.org/)_ ; - _[Perl101](https://perl101.org/)_ ; - _[Perl tutorialpoints](https://www.tutorialspoint.com/perl/)_; - _[Perl tutorial](https://www.perltutorial.org/)_ ; - _[Perl in 1 day guru99](https://www.guru99.com/perl-tutorials.html)_. ## Tutoriels en français - [_Guide Perl_](http://formation-perl.fr/guide-perl.html) ; - [_Formation-Perl_](http://formation-perl.fr/) ; - [_Guide de programmation pour apprendre Perl_](https://lhullier.developpez.com/tutoriels/perl/intro/) ; - [site du zĂ©ro](http://sdz.tdct.org/sdz/apprenez-a-programmer-en-perl.html) ; - [cours de l’UniversitĂ© de Rennes](https://perso.univ-rennes1.fr/francois.dagorn/perl/). ## Tutos interactifs - [_Perltuts_](http://perltuts.com/tutorials/quick-start/hello-world) ; - [_Learn Perl_](https://www.learn-perl.org/) ; - [tutoriel tryperl.pl](http://tryperl.pl). ## MĂ©ta‐site qui liste les tutoriels - [_Perl tutorial meta site_](http://perl-tutorial.org/). ## Folklore autour de Perl - « perl » et « Perl » : **Perl** est le langage, **perl** en est l’interprĂ©teur ; - JAPH : [_Just Another Perl Hacker_](https://en.wikipedia.org/wiki/Just_another_Perl_hacker) ; - les opĂ©rateurs secrets et leurs petits surnoms : [PerlSecret](https://metacpan.org/pod/distribution/perlsecret/lib/perlsecret.pod) ; - ce pourquoi certains dĂ©testent ou adorent Perl (entre autres) : [les variables magiques](https://perldoc.perl.org/perlvar.html) ; - TIMTOWDY : [_There’s more than one way to do it_](https://en.wikipedia.org/wiki/Just_another_Perl_hacker) ; - [_Seul perl peut parser Perl_](https://www.perlmonks.org/?node_id=663393) ou bien [PPI](https://metacpan.org/pod/PPI#Background) ; - la poĂ©sie Perl et, par exemple, le poĂšme [_Black Perl_](https://fr.wikipedia.org/wiki/Black_Perl) de Larry Wall ; - [DEAD] [Perlgolf](http://perlgolf.sourceforge.net/) (code golf) ; - Les [trois vertus du programmeur : paresse, impatience et orgueil](https://www.brainyquote.com/fr/citation/larry-wall_141510) ; - Le logo dromadaire de Perl (tirĂ© du livre _Programming Perl_ chez O’Reilly Media) (licence _Artistic License_) : ![Chameau](https://upload.wikimedia.org/wikipedia/en/0/00/Perl-camel-small.png) - le logo oignon (licence _Artistic License_) : ![Oignon](https://upload.wikimedia.org/wikipedia/en/a/a4/Onion_64x64.png) ## ÉcosystĂšme Perl - on dit gĂ©nĂ©ralement que la _killer app_ Perl est le [CPAN](https://www.cpan.org/) ([metaCPAN](https://metacpan.org/)) ; - [YaBB](http://www.yabbforum.com/), moteur de forum ; - [Everything Engine](https://www.everything2.com/), moteur de site d’actualitĂ©s et site de questions‐rĂ©ponses (qui fait tourner PerlMonks) ; - [Slashcode](https://github.com/SoylentNews/slashcode), moteur de site d’actualitĂ©s et site de questions‐rĂ©ponses (qui fait tourner Slashdot) ; - [Movable Type](https://www.movabletype.org/), systĂšme de gestion de contenu ; - [Munin](http://munin-monitoring.org/), logiciel de supervision comme Nagios et Shinken ; - [BugZilla](https://www.bugzilla.org/), outil de suivi de bogues ( projet [GitHub](https://github.com/bugzilla/bugzilla)) ; - [Perl to Java et Perl to JavaScript, compilateur Perlito](https://github.com/fglock/Perlito). - [PDL](http://pdl.perl.org/), pour le calcul scientifique ; - [Mojolicious](https://mojolicious.org/), cadriciel Web complet (plus bibliothĂšques) créé par [Sebastian Riedel](https://github.com/kraih) ([profil CPAN](https://metacpan.org/author/SRI)) ; - [Catalyst](http://www.catalystframework.org/), cardiciel Web complet ; - [Dancer](http://perldancer.org/), cadriciel Web minimaliste créé par [Alexis Sukrieh](https://metacpan.org/author/SUKRIA) ; - [NOUVEAU] [Tau Station](https://taustation.space/), un jeu d’aventure spatiale en mode texte ; - [Frozen Bubble](https://fr.wikipedia.org/wiki/Frozen_Bubble), un jeu trĂšs connu ; - [AWStats](https://awstats.sourceforge.io/), analyse des journaux de serveurs Web (projet sur [GitHub](https://github.com/eldy/awstats)) ; - [Bloxsom](http://blosxom.sourceforge.net/), moteur de blog ; - [Oddmuse](https://oddmuse.org/), un moteur de wiki ; - [Ikiwiki](https://olivier.dossmann.net/wiki/archives/web/ikiwiki/), un wiki ; - [TWiki](https://twiki.org/), un autre wiki ; - [ACT](http://act.mongueurs.net/) (projet sur [GitHub](https://github.com/book/Act)), une sorte de systĂšme de gestion de contenu pour les confĂ©rences ; - [Statocles](http://preaction.me/statocles/), un moteur de blog statique ([code source](https://github.com/preaction/Statocles)) ; - [Plstblog](https://github.com/linkdd/plstblog), un moteur de blog statique [Ă©crit par une moule LinuxFr](https://linuxfr.org/users/linkdd/journaux/plstblog-un-g%C3%A9n%C3%A9rateur-de-blog-statique-%C3%A9crit-en-perl) ; - [Cowsay](https://github.com/tnalpgge/rank-amateur-cowsay), la vache qui parle (mon terminal — licence CC BY SA) ![Exemple Cowsay](https://i.imgur.com/ISMylbw.png) - [DuckDuckGo Instant Answer](https://duck.co/ia) (projet [GitHub](https://github.com/duckduckgo/duckduckgo), un moteur de site de questions‐rĂ©ponses ; - une partie d’[openSUSE Buid Service](https://build.opensuse.org/) ([GitHub d’OBS build scripts](https://github.com/openSUSE/obs-build) et [OBS backend](https://github.com/openSUSE/open-build-service/tree/master/src/backend)) et d’autres repos sur le [GitHub d’openSUSE](https://github.com/openSUSE) ; la plate‐forme _Open Build Service_* est une infrastructure qui permet de construire des paquets pour plusieurs gestionnaires de paquets, plusieurs distributions et plusieurs architectures. ## ExĂ©cution de code Perl en ligne - [NOUVEAU] [_PerlBanjo.com_](https://perlbanjo.com/) <3 ; - [WebPerl](https://webperl.zero-g.net/) WebAssembly + Emscripten ([dĂ©mo](https://webperl.zero-g.net/democode/index.html) et [source](https://github.com/haukex/webperl)) ; - [TIO](https://tio.run/#perl5) ; - [Perlbot](https://perl.bot/). ## ExĂ©cution de code Perl en ligne (sites non spĂ©cifiques Ă  Perl) - _[tutorialpoints](https://www.tutorialspoint.com/execute_perl_online.php)_ ; - _[Rextester](https://rextester.com/l/perl_online_compiler)_ ; - _[JDoodle](https://www.jdoodle.com/execute-perl-online)_ ; - _[paiza.IO](https://paiza.io/en/projects/new?language=perl)_ ; - _[codingground](http://www.compileonline.com/execute_perl_online.php)_ ; - _[JS.do](https://js.do/perl/)_. # DĂ©velopper avec Perl ## Installer des modules du CPAN La **mĂ©thode moderne** consiste Ă  utiliser [cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm) (cpanminus). L’outil se charge d’aller chercher le module demandĂ© et de rĂ©soudre les dĂ©pendances. Par exemple, pour installer l’excellent module [XML::LibXML](https://metacpan.org/pod/XML::LibXML) de **Shlomif** qui est la bibliothĂšque de liaison Perl de [libxml2](http://www.xmlsoft.org/), on peut faire ``sudo cpanm XML::LibXML``, qui produit la sortie suivante (tronquĂ©e) : ```bash --> Working on XML::LibXML Fetching http://www.cpan.org/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0201.tar.gz ... OK ==> Found dependencies: Alien::Libxml2 --> Working on Alien::Libxml2 Fetching http://www.cpan.org/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.09.tar.gz ... OK [...] Building and testing Alien-Libxml2-0.09 ... OK Successfully installed Alien-Libxml2-0.09 Configuring XML-LibXML-2.0201 ... OK Building and testing XML-LibXML-2.0201 ... OK Successfully installed XML-LibXML-2.0201 (upgraded from 2.0128) 13 distributions installed ``` RĂ©installer un ensemble de modules Perl CPAN peut se faire simplement en rĂ©exĂ©cutant une sĂ©rie de commandes **cpanm** ou bien en spĂ©cifiant des dĂ©pendances dans un fichier [cpanfile](https://metacpan.org/pod/cpanfile) (et utiliser [carton](https://metacpan.org/pod/Carton) pour la configuration). ## Les linters ExĂ©cutables Ă  la main ou intĂ©grables dans vos scripts, IDE ou Ă©diteurs (utilisateurs de vim : [ale](https://github.com/w0rp/ale/) ou [syntastic](https://github.com/vim-syntastic/syntastic)). - [`perl -c`](https://perldoc.perl.org/perlrun.html), pour vĂ©rifier la syntaxe. Attention ça fait plus que simplement vĂ©rifier la syntaxe, ça exĂ©cute aussi ce qui est dans les blocs `BEGIN` et `END` qui sont destinĂ©s Ă  ĂȘtre exĂ©cutĂ©s pendant la compilation. Ce *design* est [la raison pour laquelle](https://github.com/w0rp/ale/issues/1186) le _linter_ par dĂ©faut utilisĂ© par le greffon [vim ale](https://github.com/w0rp/ale) n’est plus `perl -c` (ni mĂȘme `perl -w`). La vĂ©rification de syntaxe est top. Personnellement, j’ai un projet qui contient ça dans le script de tests unitaires avec des vrais tests aprĂšs : ```perl my @files = <./*.pl>; push @files, <./*.pm>; for my $f (@files) { system("perl -c $f 2>/dev/null"); my $real_ret_value = $?>> 8; if($real_ret_value != 0) { print "$f : Syntax error !\n"; } else { print "$f : OK\n"; } ok($real_ret_value == 0) or $fails += 1; } ``` C’est quand mĂȘme la base d’avoir du code syntaxiquement juste. :) - [Perl::Critic](https://metacpan.org/pod/Perl::Critic), qui *critique* votre style de codage mais ne fait pas de vĂ©rification de syntaxe. Par exemple, le fichier `bad.pl` contien : ```perl use strict; print "toto" }{ ``` Et `perl -c bad.pl` nous affiche bien : ``` Unmatched right curly bracket at bad.pl line 3, at end of line syntax error at bad.pl line 3, near ""toto" }" Missing right curly or square bracket at bad.pl line 3, at end of line bad.pl had compilation errors. ``` Mais `perlcritic bad.pl` nous dit que tout va bien `bad.pl source OK` (mais il rĂąle si on ne met pas le `use strict`). - Un module qui Ă©tait dans le cƓur de Perl mais qui est sorti du _core_ en **5.19** : [B::Lint](https://metacpan.org/pod/B::Lint). Au passage comment fait‐on pour retrouver l’historique d’un module ? Utilisez **corelist** ! `corelist B::Lint` qui nous donne : ``` Data for 2017ćčŽ09月22æ—„ B::Lint was first released with perl 5.005, deprecated (will be CPAN-only) in v5.17.9 and removed from v5.19.0 ``` Toujours disponible dans CPAN Ă©videmment. :) - Et encore un [Perl::Lint](https://metacpan.org/pod/Perl::Lint) qui se concentre sur la vitesse tout en Ă©tant compatible avec **Perl::Critic**. ## Comment compiler perl [Instructions pour compiler perl](https://www.cpan.org/src/). En fait, ça va donner ça : ```bash wget https://www.cpan.org/src/5.0/perl-5.30.0.tar.gz tar -xzf perl-5.30.0.tar.gz cd perl-5.30.0 ./Configure -des -Dprefix=$HOME/localperl make make test make install ``` [PortabilitĂ© de perl : (plus de cent plates‐formes)](https://perldoc.perl.org/perlport.html#PLATFORMS) ## Compiler les modules Qu’on utilise ou non un installeur de modules comme [cpanm](https://metacpan.org/pod/distribution/App-cpanminus/bin/cpanm), au bout du compte le module est compilĂ© avec [ExtUtils::MakeMaker](https://metacpan.org/pod/ExtUtils::MakeMaker) ou [Module::Build](https://metacpan.org/pod/Module::Build). [ExtUtils::MakeMaker](https://metacpan.org/pod/ExtUtils::MakeMaker) est toujours un module du _core_, alors que [Module::Build](https://metacpan.org/pod/Module::Build) a Ă©tĂ© ajoutĂ© puis enlevĂ© (**5.9 → 5.19**). David Golden explique dans un billet de blog pourquoi [il a demandĂ© Ă  retirer Module::Build](https://xdg.me/blog/paying-respect-to-modulebuild/). ### ExtUtils::MakeMaker Le module [ExtUtils::MakeMaker](https://metacpan.org/pod/ExtUtils::MakeMaker) gĂ©nĂšre un **makefile** Ă  partir d’un fichier `Makefile.PL` : ``` bash perl Makefile.PL make make install ``` ### Module::Build Le module [Module::Build](https://metacpan.org/pod/Module::Build) sert Ă  la mĂȘme chose mais gĂ©nĂšre un fichier **Build** Ă  partir d’un fichier `BUILD.PL` : ``` perl Build.PL ./Build ./Build test ./Build install ```

AltStyle ă«ă‚ˆăŁăŠć€‰æ›ă•ă‚ŒăŸăƒšăƒŒă‚ž (->ă‚ȘăƒȘă‚žăƒŠăƒ«) /