Voir en ligne : Documentation Perl en français
Pour commencer, une blague répandue dans la communauté Perl : le prochain crack boursier serait bien dû à un bug dans un script Perl.
C’est vous dire combien ce langage est un vrai couteau suisse : de toute ma relative expérience avec ce langage de programmation, je ne me suis jamais dis « Ah non, ça je ne peux pas le faire avec du Perl ».
Tout au plus, on peut préférer tel ou tel autre langage plus adapté aux impératifs du problème.
Donc, pour cette initiation, on va voir deux exemples :
le classique Hello World : j’affiche le texte « Hello World ».
comment télécharger le logo du site web Perl.org sur mon disque dur.
Je vous recommande aussi la lecture de cette introduction à Perl.
Bien, allons y !
Tout d’abord, on ouvre son éditeur de texte favori et on va appeler notre nouveau script, disons « hello_world.pl ».
L’extension « .pl » [astuce] n’est pas du tout obligatoire et j’aurais pu l’appeler « mon-tout-premier-script-perl », donc pas de règle en la matière.
Ensuite, on va écrire :
print "Hello World !";Et... et c’est fini !
Un mot d’explication quand même : la fonction print affiche ce qui est entre guillemets à l’écran et le point virgule (obligatoire) termine l’instruction.
Maintenant que notre script est écrit, on l’enregistre et on va dire à Perl de l’exécuter.
Donc, j’ouvre un terminal et je tape :
$ perl hello_world.pl
Hello World !
$Je viens d’appeller le programme « perl » avec comme argument le script à exécuter... et Perl affiche : Hello World !
Bon, on va épicer la sauce.
Regardez bien ce bout de code source (les numéros de ligne doivent être retirés pour fonctionner) :
Une petite idée du résultat ?
Explications :
A la ligne (4), je dis à Perl : créé une variable $nom et stocke dans cette variable la chaîne de caractères "Etienne"
A la ligne (5) : créé une variable $age et stocke dans cette variable la valeur 32
(7) : prend $age, ajoute lui la valeur 1 et stocke le résultat dans cette même variable $age
(9) : affiche ... affiche quoi au fait ?
Remarques :
chaque instruction se termine par un point virgule, c’est OBLIGATOIRE.
tout ce qui suit un # (dièse) est ignoré par Perl, on s’en sert pour faire des commentaires.
une variable sert à stocker une information qui pourra être utilisée, ou modifiée, plus tard dans le programme.
pour différencier les variables, elles débutent par le signe $ (dollar).
le mot-clé « my » sert à créer une variable, il n’est pas obligatoire, voir la remarque suivante.
le module « strict » (1) force à utiliser le mot-clé « my » pour créer des variables et éviter pas mal d’erreurs.
le module « diagnostics » (2) indique à Perl qu’il doit être bavard dans ses explications si le script ne marche pas.
le mot-clé « use » (1)(2) permet de charger un module, c’est-à-dire un ensemble complémentaire de fonctions, variables, directives, etc.
Ah, ah, on veut faire de la programmation réseau ? C’est parti !
Et voilaaaà, on peut aller vérifier sur le disque si le fichier logo.gif a bien été téléchargé.
Remarques :
je ne m’inquiète pas de savoir si mirror a réussi l’opération...
mirror a des parenthèses, ce n’est pas obligatoire : j’aurais pu écrire mirror $url, $file; comme print("C'est fini !", "\n");
Celle là, on va pas aller la télécharger, ça passe pas dans le fil cuivré.
Vous vous souvenez du HELLO WORLD première mouture ?
C’est pas dur, il n’y avait qu’une ligne :
print "Hello World !";Et bien, voilà l’équivalent en Java :
public class Hello {
public static void main(String[] args) {
System.out.print("Hello World !");
}
}C’est cool java, et facile à apprendre !
Et en plus, il faut sauvegarder ça dans le fichier Hello.java sinon il est pas content !
Bon, vous vous dites : utiliser des variables et des fonctions, c’est bien, mais je voudrais faire des choses plus élaborées, comme par exemple tester si la fonction mirror a bien fonctionné, au quel cas j’afficherais le message « Tout est OK » et le message « TOUS AUX ABRIS ! » si ça a échoué.
Et bien, vooooilà le programme de la semaine prochaine :
les structures de contrôle (si telle condition est remplie, alors faire ça, sinon faire autre chose)
les structures itératives (tant que cette condition est vraie, faire ceci, mais si telle autre condition est remplie, alors sortir de la boucle)
les tableaux (comment ranger dans une seule variable plusieurs données en même temps ?)
Pour terminer, un message subliminal :
[astuce] Dans certains éditeurs, l’extension « .pl » indiquera que c’est un fichier Perl, et on aura l’avantage de la coloration pour différencier les mots-clés et autres fonctions du langage. A ce propos, kate (KDE) et gedit (Gnome) gèrent la coloration, avec mention spéciale pour kate qui permet d’accéder facilement à une fenêtre de terminal pour exécuter le script.
Vivement la semaine prochaine ![]()
C’est encore moins prise de tête que python, puisqu’il n’y a pas besoin de rendre le script executable, et qu’on ne s’embête même pas à lui dire que c’est un script Perl ![]()
Il ne me reste plus qu’à devenir logique ![]()
pierrO
oui et non, en fait, on peut rajouter la ligne :
#!/usr/bin/perl
en début de script et faire un :
chmod +x mon_script
pour ensuite l’exécuter avec la commande :
./mon_script
bien sûr, la commande suivante reste valide :
perl mon_script