Perl

Pearl. Plus tard Pratical Extration and Report Language : langage pratique d'extraction et rapport.

Besoin

Fournir un langage pour le Web, les petits scripts et le prototypage.

Conception

PERL est un langage interprété.

Implémentation

PERL n'offre pas de typage fort. Tous les types scalaires sont codés sur 32 bits et un caractère peut être converti en chaîne facilement et vice versa. Il propose des types listes (tableaux de scalaires), tables de hâchage (clé->valeur), des routines (sub), expressions régulières (recherche, remplacement)

Limitations

Notes

Exemples

Un exemple de ligne de commande PERL est :

<strong>></strong> <strong>perl -e 'print <span class="codeString">"</span></strong><span class="codeString">hello world<strong>\n"</strong></span><strong> '</strong><br> hello world<br> <strong>></strong>

Des exemples de code PERL sont :

<strong>#!/usr/bin/perl</strong><br> <strong>print <span class="codeString">"</span></strong><span class="codeString">hello world<strong>\n"</strong></span><strong>;</strong>

ou

opendir(DIR, $dir<strong>) ||<br> print <span class="codeString">"</span></strong><span class="codeString">Repertoire<strong> $</strong>dir introuvable<strong>:$!\n"</strong></span><strong>;<br> while(readdir(DIR))<br> {<br> $filename = $_;<br> # </strong>On passe les fichiers caches<strong><br> if( $filename =~ /^\.|^\#|~$/ )<br> {next;}<br> }<br> closedir(DIR); <br> <br> my $l;<br> open(DESCR,$</strong>fichier<strong>) || <br> die <span class="codeString">"</span></strong><span class="codeString">Erreur lecture <strong>$</strong>fichier<strong>:$!\n"</strong></span><strong>; <br> while (defined(my $l=<DESCR>)) {$buf.= $l;}<br> close(DESCR);</strong>

Exemple d'un programme CGI d'envoi de la page Web courante par mail en Perl :

#!/usr/bin/perl -w<br> # # Appellez ce script comme cela :<br> # # script.cgi?email=myfriend@isp.com&url=https://www.go.com<br> <strong>use </strong>strict;<br> <strong>use </strong>CGI qw/:standard/;<br> <strong>use </strong>CGI::Carp qw/fatalsToBrowser/;<br> <strong>use </strong>MIME::Lite::HTML; <br> <br> my $mailHTML = new MIME::Lite::HTML<br> From => <span class="codeString">'javarome@javarome.net'</span>,<br> To => param(<span class="codeString">'email'</span>),<br> Subject => <span class="codeString">'Your url: '</span>.param(<span class="codeString">'url'</span>),<br> Debug => 3; <br> <br> my $MIMEmail = $mailHTML->parse(param('url'));<br> MIMEmail->send; # ou pour windows : $mail->send_by_smtp(<span class="codeString">'smtp.fai.com'</span>);<br> <strong>print </strong>header,<span class="codeString">"Mail envoye ("</span>, param(<span class="codeString">'url'</span>), <span class="codeString">" to "</span>, param(<span class="codeString">'email'</span>),<span class="codeString">")<br>\n"</span>;

Voir