Apprendre Perl rapidement, 1ère partie

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

TheHardButcher

Programmeur C/C++
V
Dec 14, 2009
1,461
58
964
France
SOURCE : Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!




I. Introduction

L'objet de cette première leçon est de vous initier au langage Perl le plus simplement et rapidement possible. Ce cours s'adresse aux néophytes, que ce soit à ceux qui ne savent pas programmer et qui veulent s'y initier aussi bien aux personnes connaissant déjà un langage et souhaitant en découvrir un autre. Bien sûr, je ne serais trop vous recommander de lire en complément la
faq.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! ainsi que les cours de la Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!.


II. Qu'est ce que Perl ?

Perl est un langage interprété créé par Larry Wall qui cherchait un langage de script plus commode à utiliser que awk sous Unix. C'est pourquoi Perl est un langage particulièrement recommandé pour l'extraction de données, ne serait-ce que par la puissance de ses expressions régulières. Perl est couramment utilisé en ingénierie, plus particulièrement en bioinformatique notamment pour l'analyse génomique et post-génomique. Perl est aussi un outil très utile pour le Webmestre souhaitant réaliser des interfaces CGI. Enfin, citons l'importance de la communauté Perl, à commencer par la richesse de ses modules sur Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! et de nombreux groupes de développeurs tels les célébrissimes
fr.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! ou les
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!.
Enfin, vous obtiendrez toutes les actualités sur Perl (Perl 6 très bientôt !) sur le site officiel de
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!.


III. Obtenir Perl

Dans ce paragraphe, nous envisagerons que vous travaillez sur des plate-formes très couramment utilisées telles Windows, Linux et MacOS X. Concernant Windows, il vous suffit de vous rendre sur la page
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! et de télécharger l'installeur de Perl. Pour Linux et les Unix en général, Perl est présent dans la quasi-majorité des distributions. Consultez ainsi vos bases de données de paquetages.
Enfin, précisons que vous pouvez toujours télécharger sur le site officiel de
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! les sources de l'interpréteur et les installer après compilation.


IV. Variables scalaires et premiers programmes

Dans cette première approche, nous écrirons des programmes simples en Perl et apprendrons à utiliser les 3 types primitifs de ce langage. Commençons donc à écrire notre premier programme nommé hello.pl :

hello.pl
#La ligne Shebang pour définir le chemin de l'interpreteur
#!/usr/bin/perl

#On affiche une chaîne de caractère
print "Bonjour tout le monde !";
Code on ne peut plus simple, non ;) Pour exécuter ce script, taper dans votre terminal :

perl hello.pl
Et le code s'exécutera, vous affichant sur votre terminal la chaîne de caractère "Bonjour tout le monde !". Remarquez que l'écriture d'un commentaire est toujours précédée par le caractère #. Enfin, dans votre ligne shebang, il vous faudra incorporer le chemin de votre interpréteur Perl (sous Windows, vous écrirez #!C:\\Perl\\bin\\perl).
Mais, voyons voir comment nous pouvons stocker des informations dans des variables. Perl est un langage non typé au regard d'autres langages comme C ou C++. Toutefois, il existe des fonctions permettant de déterminer quel type est contenu dans votre variable. Il existe 3 types de variables : les variables scalaires, les listes et les tables associatives. Une variable scalaire est la variable la plus élémentaire de Perl. Vous pourrez y stocker aussi bien des chaînes de caractères, un caractère ou un nombre. Envisageons ce code simple d'addition :

ttc1.pl
#!/usr/bin/perl

print "Calcul d'un prix TTC\n";
#On initialise la valeur de notre taxe
$taxe = 0.196;
#On fixe un prix hors taxe à 100
$pht = 100;
#D'où la valeur ttc
$ttc = $pht+($pht*$taxe);
print "Le prix TTC est de : $ttc.\n";
Ce code simple permet ainsi de calculer un prix codé en dur. Naturellement, nous voulons que notre code interagisse avec l'utilisateur :

ttc2.pl
#!/usr/bin/perl

print "Calcul d'un prix TTC\n";
#On initialise la valeur de notre taxe
$taxe = 0.196;
#On demande de rentrer un prix hors taxe
$pht = <stdin>;
#On enlève le caractère de retour chariot
chomp $pht;
#D'où la valeur ttc
$ttc = $pht+($pht*$taxe);
print "Le prix TTC est de : $ttc.\n";
Pour stocker la valeur du prix hors taxe, nous avons recours au flux standard d'entrée (soit le clavier) avec la ligne $pht = <stdin>;. La fonction chomp est appelée pour supprimer le retour chariot. Ensuite vient le calcul TTC et l'affichage du résultat.


V. Listes et tableaux

Il est évident que nous n'aurons pas que des variables simples à utiliser, nous aurons sans doute à gérer des collections de variables unitaires. Les listes sont idéales pour ça. En Perl, dans une liste, vous pourrez stocker des données non plus homogènes comme en C mais hétérogènes. D'autre part l'accès à une valeur particulière d'une liste s'effectue aussi simplement qu'un accès dans un tableau en C :

tableau1.pl
#/usr/bin/perl

print "Des listes et des boucles !\n";
#Un tableau bien hétérogène !
@tablo = (1, 2, 3, "foo", 4, "bar");
#Et une boucle une !
foreach $valeur (@tablo){
#Au passage, faisons une petite concaténation
print $valeur."\t";
}
#Accès à une valeur particulière
print "\nEt si je veux la 4ème valeur du tableau ?\n";
print "La 4ème valeur du tableau est $tablo[3]\n";
Vous aurez remarqué comment nous avons initialisé notre liste. La boucle foreach nous permet à chaque tour de boucle d'affecter la variable scalaire avec la valeur en cours de la liste tablo (noté en Perl @tablo pour @rray). Enfin, l'accès à une valeur s'effectue de manière naturelle comme dans beaucoup de langages en tenant compte du fait que la première valeur d'une liste est l'élément 0.


VI. Tables de hachages

Il nous reste un dernier type simple à envisager. Il s'agit des listes associatives appelées aussi tables de hachages. Ces listes répondent à un modèle clé=>valeur mais sans ordre particulier en comparaison des listes que nous avons vu précédemment. Dans notre exemple, nous allons utiliser les listes associatives pour stocker des urls :

hash.pl
#!/usr/bin/perl

print "Quelques URLs intéressantes\n";
#Les clés à gauche de la grosse flèche, les valeurs à droite de la grosse flèche
%urls = ("faq_perl"=>"http://perl.developpez.com/faq",
"faq_linux"=>"http://linux.developpez.com/faq",
"faq_java"=>"http://java.developpez.com/faq/java");

#Une boucle bien utile pour les listes associatives avec une chouette fonction
print "Listes des urls :\n";
#Une boucle intéressante pour récupérer les clés et les valeurs
while (($cle, $valeur) = each(%urls)){
print $cle." a pour url ".$valeur."\n";
}
#Pour accéder à une valeur particulière si on connait sa clé
print "On ne retient quand même que l'url de la FAQ Perl qui est ".$urls{"faq_perl"}." :)\n";
Dans ce code, nos clés sont des chaînes de caractères ainsi que les valeurs. Mais vos clés et valeurs peuvent être aussi bien des nombres. Dans notre boucle, nous récupérons la paire clé-valeur en cours grâce à la fonction each. Nous demandons ensuite d'afficher cette paire dans une chaîne concaténée. Enfin, l'accès à un élément en fonction de sa clé est simple mais répond à l'annotation suivante : $nom_de_mon_hash{ma_clé}.


VII. Pour conclure, en attendant la suite

J'espère ainsi vous avoir fait toucher du doigt la simplicité de ce langage qui est Perl. Nous étions nombreux à croire que Perl est complexe mais la pratique révèle que ce langage est aussi simple que les autres et qu'il s'avère particulièrement puissant pour la gestion d'un système, la mise en place d'un système d'information ou même le développement d'IHM avec les modules
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!,
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! ou
en.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!. N'hésitez pas à consulter notre
faq.jpg
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! pour approfondir cette petite approche. Enfin, venez nous voir sur le Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! ! :D

@++
 

Nawakee

Membre
Dec 14, 2009
40
0
566
Je croyais que tu n'envisager pas d'apprendre quoi que ce soit a qui que ce soit .
J'avais fait fausse route ^^