|
Sommaire
|
|
Introduction
|
|
|
|
|
Comme souvent, écrire un programme qui affiche à l'écran une ligne de texte permet d'aborder les concepts fondamentaux du langage. Voici donc le "Hello World" de Perl :
#!/usr/bin/perl -w
use strict;
print "Hello, world!\n";
La première ligne commence par les caractères # et ! attachés, communément appelés "shebang" (de l'anglais "shell", ligne de commande, et "bang", exclamation) ou "shabang" (de l'anglais "sharp", dièse). Le shebang n'est pas spécifique à Perl, mais permet au système Unix de savoir quel interpréteur utiliser pour exécuter le script contenu dans le fichier.
Il est donc toujours suivit par le chemin vers l'interpréteur Perl (ici, /usr/bin/perl avec l'option -w pour afficher certaines alertes), et se retrouve également en tête d'autres programmes de langages de script : #!/usr/bin/python , #!/usr/bin/ruby , #!/bin/awk .
La seconde ligne n'est pas utile pour un programme si trivial, mais est une bonne habitude à prendre : elle précise que le code doit être interprété de manière stricte. Dans les faits, use strict est un pragma, une directive de compilation fonctionnant de la même manière que l'option -w pour les avertissements. Le code compilé sera donc plus sûr.
La troisième ligne, enfin, est le cur du programme : print affiche simplement la chaîne qui le suit, celle-ci étant terminé par \n , un retour à la ligne. Notez qu'en dehors de la première ligne, non spécifique à Perl, toutes les lignes de code se terminent par un point-virgule.
Perl se distingue par ses types de données, chacun étant créé par un préfixe de variable particulier, nommé sigil : $var pour les scalaires (variable contenant une seule valeur), @var pour les tableaux, %var pour les hash (tableau associatif), &var pour les sous-routines, VAR pour les ressources fichiers. Outre ces quelques types statiques, Perl reste un langage dynamiquement typé.
Par ailleurs, les variables peuvent être précédées du mot-clef my pour indiquer que leur portée est limitée au bloc conteneur - donc, créer une variable locale. Dans le même ordre d'idée, our $var crée une variable globale limitée au module courant.
Perl dispose de tous les blocs de code usuels (if/elsif/else , for , foreach , while , do..while ), ainsi que d'autres à la sémantique intéressante, comme unless ou do..until . Il ne dispose pas par défaut du bloc switch , et lui préfère des variations de if/elsif , l'usage des étiquettes, ou le recours à un module - mais Perl 5.10 et 6 devrait proposer ce bloc.
Les blocs sont délimités par des accolades ouvrantes et fermantes :
for my $i (0..$n-1) {
my $node = $nodes->item($i);
if ($node->getNodeType == ELEMENT_NODE) {
check_inner_text($node);
}
}
Les expressions rationnelles sont directement intégrées dans le code Perl, sans devoir faire un appel de fonction comme en PHP par exemple, mais à l'aide d'opérateurs =~ ou !~ :
# renvoi vrai, c'est à dire 1, si $chaine contient "texte".
$chaine =~ /texte/
# cherche "lapins" dans $chaine, et s'il le trouve, le remplace par "tronçonneuse".
$chaine =~ s/lapins/tronçonneuses/;
|