Différences entre les versions de « Intro à Perl »

De Site à Mans
Aller à la navigation Aller à la recherche
m
(Une version intermédiaire par le même utilisateur non affichée)
Ligne 1 : Ligne 1 :
<blockquote style="margin-left: 15px;"><blockquote style="margin-left: 15px;">
<blockquote style="margin-left: 15px"><blockquote style="margin-left: 15px">
= AVERTISSEMENT =
= AVERTISSEMENT =


Ce document est destiné aux personnes n'ayant aucunes connaissances au langage Perl, voire même aucunes connaissances en programmation.
Ce document est destiné aux personnes n'ayant aucune connaissance du langage Perl, voire même aucune connaissance en programmation.  


De plus, la mise en page est asses sommaire parce que ce texte a été importé sur ce site à partir d'un document HTML4+CSS2 et qu'il ne m'est pas possible de prendre d'avantage de temps pour améliorer sa présentation.
De plus, la mise en page est assez sommaire parce que ce texte a été importé sur ce site à partir d'un document HTML4+CSS2 et qu'il ne m'est pas possible de prendre d'avantage de temps pour améliorer sa présentation.  


Merci pour votre compréhention.
Merci pour votre compréhention.  


<br>


<br>


<br>


<br>
<blockquote style="margin-left: 15px"><br>
<span style="font-size: xx-large">'''Introduction à Perl&nbsp;'''</span>


= Bien commencer!  =


Pour commencer, il faut créer un fichier que l'on nommera&nbsp;'''"intro_perl.pl".'''&nbsp;Toutes les lignes de programmation Perl qui suivent pourront être contenues dans ce fichier.


&nbsp;


<blockquote style="margin-left: 15px;"><br/><p style="text-align: right;"><span style="font-size:xx-large;">'''Introduction à Perl&nbsp;'''</span></p>
= Afficher des informations avec Perl=
= Bien commencer! =


Pour commencer, il faut créer un fichier que l'on nommera&nbsp;'''"intro_perl.pl".'''&nbsp;Toutes les lignes de programmation Perl qui suivent pourront être contenues dans ce fichier.
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>&nbsp;(" blabla j'afficheeee ");  


&nbsp;
avec retour à la ligne&nbsp;:


= Afficher des informations avec Perl. =
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>&nbsp;(" là, j'affiche avec un saut de ligne grâce à l'&nbsp;<font size="4">'''Anté Slash'''</font>&nbsp;collé à la lette 'n''''&nbsp;'''");


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>&nbsp;(" blabla j'afficheeee ");
= Mémoriser des informations dans Perl  =


avec retour à la ligne&nbsp;:
Une variable se reconnaît grâce au signe $ (dollar) à gauche d'un mot. Ce mot doit toujours commencer par une lettre et peut terminer par des chiffres ou des lettres... Comme indique le sujet de ce chapitre, elles servent à mémoriser des informations dans un programme Perl. Toutes ces informations sont appelées -&gt; SCALAIRE&nbsp;; je crois que ce mot à une signification mathématique...&nbsp;:)


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>&nbsp;(" là, j'affiche avec un saut de ligne grâce à l'&nbsp;<font size="4">'''Anté Slash'''</font>&nbsp;collé à la lette 'n''''&nbsp;'''");
Pour demander à Perl d'utiliser une variable, de la déclarer, on utilise la fonction "<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>"&nbsp;:


= Mémoriser des informations dans Perl =
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($ma_memoire) = "les informations à mémoriser";</code>


Une variable se reconnaît grâce au signe $ (dollar) à gauche d'un mot. Ce mot doit toujours commencer par une lettre et peu terminer par des chiffres ou des lettres... Comme indique le sujet de ce chapitre elles servent à mémoriser des informations dans un programme Perl. Toutes ces informations sont appelées -> SCALAIRE&nbsp;; je crois que ce mot à une signification mathématique...&nbsp;:)
&nbsp; ou


Pour demander à Perl d'utiliser une variable, de la déclarer, on utilise la fonction "<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>"&nbsp;:
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($texte) = "Marin";<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($chiffre) = "9";</code>


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($ma_memoire) = "les informations à mémoriser";</code>
Les données contenues dans les variables seront interprétées automatiquement par Perl. Par exemple si nos variables se trouvent dans un&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>, Perl affichera leur contenu&nbsp;:


&nbsp; ou
<span dir="ltr"><code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>(" Contenu de texte&nbsp;: $texte, et de chiffre&nbsp;: $chiffre \n");</code></span>


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($texte) = "Marin";<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($chiffre) = "9";</code>
<br>''Remarque&nbsp;: Vous n'êtes pas obligé d'utiliser "<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>" pour déclarer vos variables, vous pouvez le faire sans! Mais, sans rentrer dans les détails, il est fortement conseillé d'utiliser "<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>" à chaque déclaration. Quand vous aurez à débuguer un programme Perl dans une page ASP, vous apprécierez sans aucun doute les bienfaits de son utilisation.''


Les données contenues dans les variables seront interprétées automatiquement par Perl. Par exemple si nos variables se trouvent dans un&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>, Perl affichera leur contenu&nbsp;:
&nbsp;  


<span dir="ltr"><code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>(" Contenu de texte&nbsp;: $texte, et de chiffre&nbsp;: $chiffre \n");</code></span>
&nbsp;  


<br/>''Remarque&nbsp;: Vous n'êtes pas obligé d'utiliser "<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>" pour déclarer vos variables, vous pouvez le faire sans! Mais! sans rentrer dans les détails il est fortement conseillé d'utiliser "<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>" à chaque déclaration. Quand vous aurez à débuguer un programme Perl dans une page ASP, vous apprécierez sans aucuns doute les bien fait de son utilisations.''
= Comparer, conditions dans Perl  =


&nbsp;
Tout langage de programmation possède un système de condition permettant aux ordinateurs de réagir selon des critères définis par le programmeur... Elles sont la base de l'informatique, sans elles nos ordinateurs ne feraient qu'afficher des informations ...


&nbsp;
Exemple de comparaison de deux variables (Scalaire&nbsp;:)


= Comparer, conditions dans Perl =
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">if&nbsp;</u>($texte eq $chiffre)<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Le contenu de la variable $texte est égal au contenu de la variable $chiffre\n");<br>}<br>else<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("\$texte et \$chiffre ne sont pas égal!\n");<br>}</code>


Tout langage de programmation possède un système de condition permettant aux ordinateurs de réagir selon des critères définie par le programmeur... Elle sont la base de l'informatique, sans elles nos ordinateurs ne feraient qu'afficher des informations ...
&nbsp;


Exemple de comparaison de deux variables (Scalaire&nbsp;:)
<br>Remarque&nbsp;: Ici on utilise l'Anté Slash pour dire à Perl de ne pas prendre $texte pour une variable mais seulement d'annuler l'effet du $ dans le print...&nbsp;  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">if&nbsp;</u>($texte eq $chiffre)<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Le contenu de la variable $texte est égal au contenu de la variable $chiffre\n");<br/>}<br/>else<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("\$texte et \$chiffre ne sont pas égal!\n");<br/>}</code>
'''Autres opérateurs de comparaison acceptés dans le "if( ... )"&nbsp;:'''  
 
<div style="font-family: arial, sans-serif; color: rgb(83,83,83); font-size: medium" align="center"><center>
&nbsp;
 
<br/>Remarque&nbsp;: Ici on utilise l'Anté Slash pour dire à Perl de ne pas prendre $texte pour une variable mais seulement d'annuler l'effet du $ dans le print...&nbsp;
 
'''Autres opérateurs de comparaison acceptés dans le "if( ... )"&nbsp;:'''
<div align="center" style="color: rgb(83, 83, 83); font-family: Arial, sans-serif; font-size: medium;"><center>
{| border="0" width="945"
{| border="0" width="945"
|-
|-
| width="146" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''L'opérateur binaire'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire'''</span>  
| width="38" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''"<"'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="38" | <span style="font-size: small">'''"&lt;"'''</span>  
| width="291" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est'''</span>  
| width="124" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''numériquement'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="124" | <span style="font-size: small">'''numériquement'''</span>  
| width="314" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''plus petit que son opérande droit.'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="314" | <span style="font-size: small">'''plus petit que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" | <span style="font-size:small;">'''">"'''</span>
| valign="top" width="38" | <span style="font-size: small">'''"&gt;"'''</span>  
| width="291" valign="top" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>
| valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>  
| width="124" valign="top" | <span style="font-size:small;">'''numériquement&nbsp;'''</span>
| valign="top" width="124" | <span style="font-size: small">'''numériquement&nbsp;'''</span>  
| width="314" valign="top" | <span style="font-size:small;">'''plus grand que son opérande droit.'''</span>
| valign="top" width="314" | <span style="font-size: small">'''plus grand que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''"<="'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="38" | <span style="font-size: small">'''"&lt;="'''</span>  
| width="291" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>  
| width="124" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''numériquement&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="124" | <span style="font-size: small">'''numériquement&nbsp;'''</span>  
| width="314" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''plus petit ou égal que son opérande droit.'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="314" | <span style="font-size: small">'''plus petit ou égal que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" | <span style="font-size:small;">'''">="'''</span>
| valign="top" width="38" | <span style="font-size: small">'''"&gt;="'''</span>  
| width="291" valign="top" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>
| valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est&nbsp;'''</span>  
| width="124" valign="top" | <span style="font-size:small;">'''numériquement&nbsp;'''</span>
| valign="top" width="124" | <span style="font-size: small">'''numériquement&nbsp;'''</span>  
| width="314" valign="top" | <span style="font-size:small;">'''plus grand ou égal que son opérande droit.'''</span>
| valign="top" width="314" | <span style="font-size: small">'''plus grand ou égal que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''"lt"'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="38" | <span style="font-size: small">'''"lt"'''</span>  
| width="291" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est'''</span>  
| width="124" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''alphabétiquement&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="124" | <span style="font-size: small">'''alphabétiquement&nbsp;'''</span>  
| width="314" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''plus petit que son opérande droit.'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="314" | <span style="font-size: small">'''plus petit que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" | <span style="font-size:small;">'''"gt"'''</span>
| valign="top" width="38" | <span style="font-size: small">'''"gt"'''</span>  
| width="291" valign="top" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est'''</span>
| valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est'''</span>  
| width="124" valign="top" | <span style="font-size:small;">'''alphabétiquement&nbsp;'''</span>
| valign="top" width="124" | <span style="font-size: small">'''alphabétiquement&nbsp;'''</span>  
| width="314" valign="top" | <span style="font-size:small;">'''plus grand que son opérande droit.'''</span>
| valign="top" width="314" | <span style="font-size: small">'''plus grand que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''"le"'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="38" | <span style="font-size: small">'''"le"'''</span>  
| width="291" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est'''</span>  
| width="124" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''alphabétiquement&nbsp;'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="124" | <span style="font-size: small">'''alphabétiquement&nbsp;'''</span>  
| width="314" valign="top" bgcolor="#D1D1D1" class="bande_gris" style="background-color: rgb(192, 192, 192); font-family: 'Times New Roman';" | <span style="font-size:small;">'''plus petit ou égal que son opérande droit.'''</span>
| style="background-color: rgb(192,192,192); font-family: 'times new roman'" class="bande_gris" bgcolor="#d1d1d1" valign="top" width="314" | <span style="font-size: small">'''plus petit ou égal que son opérande droit.'''</span>
|-
|-
| width="146" valign="top" | <span style="font-size:small;">'''L'opérateur binaire&nbsp;'''</span>
| valign="top" width="146" | <span style="font-size: small">'''L'opérateur binaire&nbsp;'''</span>  
| width="38" valign="top" | <span style="font-size:small;">'''"ge"'''</span>
| valign="top" width="38" | <span style="font-size: small">'''"ge"'''</span>  
| width="291" valign="top" | <span style="font-size:small;">'''renvoie vrai si son opérande gauche est'''</span>
| valign="top" width="291" | <span style="font-size: small">'''renvoie vrai si son opérande gauche est'''</span>  
| width="124" valign="top" | <span style="font-size:small;">'''alphabétiquement&nbsp;'''</span>
| valign="top" width="124" | <span style="font-size: small">'''alphabétiquement&nbsp;'''</span>  
| width="314" valign="top" | <span style="font-size:small;">'''plus grand ou égal que son opérande droit.'''</span>
| valign="top" width="314" | <span style="font-size: small">'''plus grand ou égal que son opérande droit.'''</span>
|}
|}
</center></div>
</center></div>  
Notez cette liste, car d'autres fonctions de Perl les utilisent!
Notez cette liste, car d'autres fonctions de Perl les utilisent!  


&nbsp;
&nbsp;  


= Utiliser les informations mémorisées =
= Utiliser les informations mémorisées =


== Afficher ==
== Afficher ==


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>&nbsp;permet de traiter les informations fixes mais aussi et surtout&nbsp;'''"les variables"'''. Les informations fixes sont en général du texte qui ne change pas quel que soit le fonctionnement du programme ou bien de l'utilisation qu'en fait l'utilisateur. Seul ce qui est&nbsp;'''variable'''&nbsp;pourra changer lors de l'exécution d'un programme&nbsp;:
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>&nbsp;permet de traiter les informations fixes mais aussi et surtout&nbsp;'''"les variables"'''. Les informations fixes sont en général du texte qui ne change pas quel que soit le fonctionnement du programme ou bien de l'utilisation qu'en fait l'utilisateur. Seul ce qui est&nbsp;'''variable'''&nbsp;pourra changer lors de l'exécution d'un programme&nbsp;:  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Ton prénom est&nbsp;:&nbsp;'''$texte&nbsp;'''\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # N° 1</code><br/>ou<br/><code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Ton prénom est&nbsp;:&nbsp;'''%s'''&nbsp;\n",&nbsp; $texte); # N° 2</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Ton prénom est&nbsp;:&nbsp;'''$texte&nbsp;'''\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # N° 1</code><br>ou<br><code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Ton prénom est&nbsp;:&nbsp;'''%s'''&nbsp;\n",&nbsp; $texte); # N° 2</code>  


*Si vous hésitez sur la forme à employer, préférez la N° 2...
*Si vous hésitez sur la forme à employer, préférez la N° 2...


Donc si $texte avait contenu le prénom "Cédric" plutôt que Marin, la fonction printf aurait bien sur imprimé "Cédric" mais n'aurait pas changé le reste qui se trouve dans le printf''"Ton prénom est&nbsp;:"...''
Donc si $texte avait contenu le prénom "Cédric" plutôt que Marin, la fonction printf aurait bien sur imprimé "Cédric" mais n'aurait pas changé le reste qui se trouve dans le printf''"Ton prénom est&nbsp;:"...''  


&nbsp;
&nbsp;  


Autre exemple&nbsp;:
Autre exemple&nbsp;:  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Ton chiffre/nombre est&nbsp;:&nbsp;'''<u>%d&nbsp;</u>'''\n",&nbsp; $chiffre);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Ton chiffre/nombre est&nbsp;:&nbsp;'''<u>%d&nbsp;</u>'''\n",&nbsp; $chiffre);</code>  


&nbsp;
&nbsp;  


== Calculer ==
== Calculer ==


<code>$chiffre = $chiffre * 100;<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Le nombre multiplié par 100 est égal à&nbsp;:&nbsp;%s \n",&nbsp; $chiffre);</code>
<code>$chiffre = $chiffre * 100;<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Le nombre multiplié par 100 est égal à&nbsp;:&nbsp;%s \n",&nbsp; $chiffre);</code>  


&nbsp;
&nbsp;  


== Ajouter ==
== Ajouter ==


Lorsque votre programme reçoit des données, il peut-être nécessaire (souvent&nbsp;:) d'y ajouter d'autres informations ou simplement les arranger dans un ordre précis en fonction de vos critères.
Lorsque votre programme reçoit des données, il peut-être nécessaire (souvent&nbsp;:) d'y ajouter d'autres informations ou simplement les arranger dans un ordre précis en fonction de vos critères.  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($phrase) = ""; # ne pas oublier d'initialiser les variables! (si ce n'est pas déjà fait!)</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($phrase) = ""; # ne pas oublier d'initialiser les variables! (si ce n'est pas déjà fait!)</code>  


<code>$phrase = $texte . " a " . $chiffre . " ans.";</code>
<code>$phrase = $texte . " a " . $chiffre . " ans.";</code>  


ou
ou  


$phrase =&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">sprintf</u>("'''%s&nbsp;&nbsp;'''a&nbsp;&nbsp;'''%d'''&nbsp;ans!",&nbsp; $texte,&nbsp; $chiffre);
$phrase =&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">sprintf</u>("'''%s&nbsp;&nbsp;'''a&nbsp;&nbsp;'''%d'''&nbsp;ans!",&nbsp; $texte,&nbsp; $chiffre);  


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">print</u>&nbsp;("$phrase");
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">print</u>&nbsp;("$phrase");  


Donne&nbsp;: Marin a 900 ans!
Donne&nbsp;: Marin a 900 ans!  


&nbsp;
&nbsp;  


== Couper ==
== Couper ==


De même qu'ajouter des informations, on peut avoir besoin d'en extraire. Ici on veut simplement enlever le "et" mais pas à n'importe quel prix! Il faut aussi demander à Perl de vérifier que tout ce passe bien!
De même qu'ajouter des informations, on peut avoir besoin d'en extraire. Ici on veut simplement enlever le "et" mais pas à n'importe quel prix! Il faut aussi demander à Perl de vérifier que tout se passe bien!  


&nbsp;
&nbsp;  


<code>$phrase = "Perl et PHP"; # ici on n'utilise pas, volontairement, "<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>", car $phrase&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # est déjà déclaré/connu de Perl.<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($mot1) = ""; # On demande à Perl de déclarer $mot1, mais de ne rien y mettre...<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($mot2) = ""; # ...</code>
<code>$phrase = "Perl et PHP"; # ici on n'utilise pas, volontairement, "<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>", car $phrase&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # est déjà déclaré/connu de Perl.<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($mot1) = ""; # On demande à Perl de déclarer $mot1, mais de ne rien y mettre...<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($mot2) = ""; # ...</code>  


#On coupe en deux par rapport à un critère qui est " et "&nbsp;; ça aurait pu être un espace!
#On coupe en deux par rapport à un critère qui est " et "&nbsp;; ça aurait pu être un espace!


<code>($mot1, $mot2) =&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">split</u>&nbsp;(/ et /, $phrase, 2);</code>
<code>($mot1, $mot2) =&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">split</u>&nbsp;(/ et /, $phrase, 2);</code>  


#On demande à Perl de s'assurer que les réponses de&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">split</u>&nbsp;soient correctes.
#On demande à Perl de s'assurer que les réponses de&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">split</u>&nbsp;soient correctes.


<code>#&nbsp;''Ce n'est pas du tout obligatoire'', mais ça permet d'éviter des surprises...</code>
<code>#&nbsp;''Ce n'est pas du tout obligatoire'', mais ça permet d'éviter des surprises...</code>  


<code>$mot1 = ""&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">if&nbsp;</u>(&nbsp;!<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">defined</u>&nbsp;($mot1) ); # on demande à Perl de placer du vide dans $mot1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # si celui-ci n'existe plus.<br/>$mot2 = ""&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">if&nbsp;</u>(&nbsp;!<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">defined</u>&nbsp;($mot2) );</code>
<code>$mot1 = ""&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">if&nbsp;</u>(&nbsp;!<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">defined</u>&nbsp;($mot1) ); # on demande à Perl de placer du vide dans $mot1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # si celui-ci n'existe plus.<br>$mot2 = ""&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">if&nbsp;</u>(&nbsp;!<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">defined</u>&nbsp;($mot2) );</code>  


#On affiche le résultat.<br/><code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Mot1 =&nbsp;%s, Mot2&nbsp;:&nbsp;%s\n", $mot1, $mot2);</code>
#On affiche le résultat.<br><code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Mot1 =&nbsp;%s, Mot2&nbsp;:&nbsp;%s\n", $mot1, $mot2);</code>


== Remplacer ==
== Remplacer ==


&nbsp;
&nbsp;  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($mot) = "Hackers";<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($crackers) = "les Hackers sont des pirates";</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($mot) = "Hackers";<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($crackers) = "les Hackers sont des pirates";</code>  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("%s&nbsp;?\n", $crackers);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("%s&nbsp;?\n", $crackers);</code>  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($nombre_trouve) = ($crackers =~ s/${mot}/Crackers/g);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($nombre_trouve) = ($crackers =~ s/${mot}/Crackers/g);</code>  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Non!,&nbsp;%s&nbsp;!\n", $crackers);<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>(" Le mot&nbsp;%s a été trouvé&nbsp;%s fois\n", $mot, $nombre_trouve);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Non!,&nbsp;%s&nbsp;!\n", $crackers);<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>(" Le mot&nbsp;%s a été trouvé&nbsp;%s fois\n", $mot, $nombre_trouve);</code>  


&nbsp;
&nbsp;  


&nbsp;
&nbsp;  


= Les Tableaux =
= Les Tableaux =


''(Pour plus de détails voir perldata)''
''(Pour plus de détails voir perldata)''  


== Tableau de Scalaires ==
== Tableau de Scalaires ==


&nbsp;
&nbsp;  


Perl comme tout langage propose de mémoriser des données sous forme de tableau.
Perl comme tout langage propose de mémoriser des données sous forme de tableau.  


Par exemple si on veut mémoriser des informations personnelles (ce n'est qu'un exemple&nbsp;:) comme le&nbsp;''nom, prénom, la date de naissance, son numéro de carte bleue''&nbsp;...&nbsp;:) Il faudra déclarer un tableau comme suit&nbsp;:
Par exemple si on veut mémoriser des informations personnelles (ce n'est qu'un exemple&nbsp;:) comme le&nbsp;''nom, prénom, la date de naissance, son numéro de carte bleue''&nbsp;...&nbsp;:) Il faudra déclarer un tableau comme suit&nbsp;:  


&nbsp;
&nbsp;  


{| border="0" width="707" style="font-family: Arial, sans-serif;"
{| style="font-family: arial, sans-serif" border="0" width="707"
|-
|-
| width="339" |  
| width="339" |  
<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;( @tableau ) = (&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Cougnenc",<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "René",<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "1 Janvier 2002",<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "0391 4389 6752 9172"</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;( @tableau ) = (&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "Cougnenc",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "René",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "1 Janvier 2002",<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "0391 4389 6752 9172"</code>  


<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; );</code>
<code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; );</code>  


<code>&nbsp;</code>
<code>&nbsp;</code>  


| width="354" | <div align="center"><center>
| width="354" | <div align="center"><center>
{| border="1" width="100" cellspacing="3"
{| border="1" cellspacing="3" width="100"
|-
|-
| @tableau
| @tableau
Ligne 240 : Ligne 242 :
|}
|}


S'utilise&nbsp;:
S'utilise&nbsp;:  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("<br/>Prénom&nbsp;:&nbsp;%s<br/>Nom&nbsp;:&nbsp;%s<br/>Né le&nbsp;:&nbsp;%s<br/>CB N°&nbsp;:&nbsp;%s<br/>", $tableau[0], $tableau[1], $tableau[2], $tableau[3]);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("<br>Prénom&nbsp;:&nbsp;%s<br>Nom&nbsp;:&nbsp;%s<br>Né le&nbsp;:&nbsp;%s<br>CB N°&nbsp;:&nbsp;%s<br>", $tableau[0], $tableau[1], $tableau[2], $tableau[3]);</code>  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>(" Vous avez&nbsp;:&nbsp;%d éléments dans votre tableau!", $#tableau);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>(" Vous avez&nbsp;:&nbsp;%d éléments dans votre tableau!", $#tableau);</code>  


&nbsp;
&nbsp;  


&nbsp;
&nbsp;  


=== Tableau plus complexe! ===
=== Tableau plus complexe! ===


Se dit aussi&nbsp;:&nbsp;<font face="Times New Roman" size="2">tableau associatif de&nbsp;<span style="text-transform: uppercase;">SCALAIRES</span>.</font>
Se dit aussi&nbsp;:&nbsp;<font size="2" face="times new roman">tableau associatif de&nbsp;<span style="text-transform: uppercase">SCALAIRES</span>.</font>  
<div align="center" style="color: rgb(83, 83, 83); font-family: Arial, sans-serif; font-size: medium;"><center>
<div style="font-family: arial, sans-serif; color: rgb(83,83,83); font-size: medium" align="center"><center>
{| border="0" width="669" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid;"
{| style="border-bottom-style: solid; border-right-style: solid; border-top-style: solid; border-left-style: solid" border="0" width="669"
|-
|-
| width="192" valign="top" | <font size="3">#</font>
| valign="top" width="192" | <font size="3">#</font>  
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" |
| valign="top" width="11" |
| width="913" colspan="5" valign="top" |  
| valign="top" width="913" colspan="5" |  
''<font size="3">Numéros de champ</font>''
''<font size="3">Numéros de champ</font>''  


|-
|-
| width="192" valign="top" | <font size="3"># Nom de la table</font>
| valign="top" width="192" | <font size="3"># Nom de la table</font>  
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" |
| valign="top" width="11" |
| width="118" align="center" valign="top" | <font size="3">0</font>
| valign="top" width="118" align="middle" | <font size="3">0</font>  
| width="112" align="center" valign="top" | <font size="3">1</font>
| valign="top" width="112" align="middle" | <font size="3">1</font>  
| width="303" align="center" valign="top" | <font size="3">2</font>
| valign="top" width="303" align="middle" | <font size="3">2</font>  
| width="229" align="center" valign="top" | <font size="3">3</font>
| valign="top" width="229" align="middle" | <font size="3">3</font>  
| width="151" align="center" valign="top" |  
| valign="top" width="151" align="middle" |  
|-
|-
| width="192" valign="top" | <code><font size="3"><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;(@table) =&nbsp;</font></code>
| valign="top" width="192" | <code><font size="3"><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;(@table) =&nbsp;</font></code>  
| width="14" valign="top" | <code><font size="3">(</font></code>
| valign="top" width="14" | <code><font size="3">(</font></code>  
| width="11" valign="top" |
| valign="top" width="11" |
| width="118" valign="top" |
| valign="top" width="118" |
| width="112" valign="top" |
| valign="top" width="112" |
| width="303" valign="top" |
| valign="top" width="303" |
| width="229" valign="top" |
| valign="top" width="229" |
| width="151" valign="top" |  
| valign="top" width="151" |  
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" | <code><font color="#FF0000" size="3">[</font></code>
| valign="top" width="11" | <code><font color="#ff0000" size="3">[</font></code>  
| width="118" valign="top" | <code><font size="3"><font color="#0000FF">"</font>René<font color="#0000FF">"</font>,</font></code>
| valign="top" width="118" | <code><font size="3"><font color="#0000ff">"</font>René<font color="#0000ff">"</font>,</font></code>  
| width="112" valign="top" | <code><font size="3"><font color="#0000FF">"</font>Cougnenc<font color="#0000FF">"</font>,</font></code>
| valign="top" width="112" | <code><font size="3"><font color="#0000ff">"</font>Cougnenc<font color="#0000ff">"</font>,</font></code>  
| width="303" valign="top" | <code><font size="3"><font color="#0000FF">"</font>1 Janvier 2002<font color="#0000FF">"</font>,</font></code>
| valign="top" width="303" | <code><font size="3"><font color="#0000ff">"</font>1 Janvier 2002<font color="#0000ff">"</font>,</font></code>  
| width="229" valign="top" | <code><font size="3"><font color="#0000FF">"</font>cb1<font color="#0000FF">"</font></font></code>
| valign="top" width="229" | <code><font size="3"><font color="#0000ff">"</font>cb1<font color="#0000ff">"</font></font></code>  
| width="151" valign="top" | <code><font color="#FF0000" size="3">], # 0</font></code>
| valign="top" width="151" | <code><font color="#ff0000" size="3">], # 0</font></code>
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" | <code><font color="#FF0000" size="3">[</font></code>
| valign="top" width="11" | <code><font color="#ff0000" size="3">[</font></code>  
| width="118" valign="top" | <code><font size="3"><font color="#0000FF">"</font>Frédéric<font color="#0000FF">"</font>,</font></code>
| valign="top" width="118" | <code><font size="3"><font color="#0000ff">"</font>Frédéric<font color="#0000ff">"</font>,</font></code>  
| width="112" valign="top" | <code><font size="3"><font color="#0000FF">"</font>René<font color="#0000FF">"</font>,</font></code>
| valign="top" width="112" | <code><font size="3"><font color="#0000ff">"</font>René<font color="#0000ff">"</font>,</font></code>  
| width="303" valign="top" | <code><font size="3"><font color="#0000FF">"</font>31 Décembre 2030<font color="#0000FF">"</font>,</font></code>
| valign="top" width="303" | <code><font size="3"><font color="#0000ff">"</font>31 Décembre 2030<font color="#0000ff">"</font>,</font></code>  
| width="229" valign="top" | <code><font size="3"><font color="#0000FF">"</font>reste à donner<font color="#0000FF">"</font></font></code>
| valign="top" width="229" | <code><font size="3"><font color="#0000ff">"</font>reste à donner<font color="#0000ff">"</font></font></code>  
| width="151" valign="top" | <code><font color="#FF0000" size="3">], # 1</font></code>
| valign="top" width="151" | <code><font color="#ff0000" size="3">], # 1</font></code>
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" | <code><font color="#FF0000" size="3">[</font></code>
| valign="top" width="11" | <code><font color="#ff0000" size="3">[</font></code>  
| width="118" valign="top" | <code><font size="3"><font color="#0000FF">"</font>Javier<font color="#0000FF">"</font>,</font></code>
| valign="top" width="118" | <code><font size="3"><font color="#0000ff">"</font>Javier<font color="#0000ff">"</font>,</font></code>  
| width="112" valign="top" | <code><font size="3"><font color="#0000FF">"</font>Garmendia<font color="#0000FF">"</font>,</font></code>
| valign="top" width="112" | <code><font size="3"><font color="#0000ff">"</font>Garmendia<font color="#0000ff">"</font>,</font></code>  
| width="303" valign="top" | <code><font size="3"><font color="#0000FF">"</font>2 Janvier 2002<font color="#0000FF">"</font>,</font></code>
| valign="top" width="303" | <code><font size="3"><font color="#0000ff">"</font>2 Janvier 2002<font color="#0000ff">"</font>,</font></code>  
| width="229" valign="top" | <code><font size="3"><font color="#0000FF">"</font>déjà donné<font color="#0000FF">"</font></font></code>
| valign="top" width="229" | <code><font size="3"><font color="#0000ff">"</font>déjà donné<font color="#0000ff">"</font></font></code>  
| width="151" valign="top" | <code><font color="#FF0000" size="3">], # 2</font></code>
| valign="top" width="151" | <code><font color="#ff0000" size="3">], # 2</font></code>
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" | <code><font color="#FF0000" size="3">[</font></code>
| valign="top" width="11" | <code><font color="#ff0000" size="3">[</font></code>  
| width="118" valign="top" | <code><font size="3"><font color="#0000FF">"</font>...<font color="#0000FF">"</font>,</font></code>
| valign="top" width="118" | <code><font size="3"><font color="#0000ff">"</font>...<font color="#0000ff">"</font>,</font></code>  
| width="112" valign="top" | <code><font size="3"><font color="#0000FF">"</font>...<font color="#0000FF">"</font>,</font></code>
| valign="top" width="112" | <code><font size="3"><font color="#0000ff">"</font>...<font color="#0000ff">"</font>,</font></code>  
| width="303" valign="top" | <code><font size="3"><font color="#0000FF">"</font>...<font color="#0000FF">"</font>,</font></code>
| valign="top" width="303" | <code><font size="3"><font color="#0000ff">"</font>...<font color="#0000ff">"</font>,</font></code>  
| width="229" valign="top" | <code><font size="3"><font color="#0000FF">"</font>...<font color="#0000FF">"</font></font></code>
| valign="top" width="229" | <code><font size="3"><font color="#0000ff">"</font>...<font color="#0000ff">"</font></font></code>  
| width="151" valign="top" | <code><font color="#FF0000" size="3">]&nbsp; # 3</font></code>
| valign="top" width="151" | <code><font color="#ff0000" size="3">]&nbsp; # 3</font></code>
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" | <code><font size="3">);</font></code>
| valign="top" width="14" | <code><font size="3">);</font></code>  
| width="11" valign="top" |
| valign="top" width="11" |
| width="118" valign="top" |
| valign="top" width="118" |
| width="112" valign="top" |
| valign="top" width="112" |
| width="303" valign="top" |
| valign="top" width="303" |
| width="229" valign="top" |
| valign="top" width="229" |
| width="151" valign="top" |  
| valign="top" width="151" |  
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" |
| valign="top" width="11" |
| width="118" valign="top" |
| valign="top" width="118" |
| width="112" valign="top" |
| valign="top" width="112" |
| width="303" valign="top" |
| valign="top" width="303" |
| width="229" valign="top" |
| valign="top" width="229" |
| width="151" valign="top" |  
| valign="top" width="151" |  
|-
|-
| width="192" valign="top" |
| valign="top" width="192" |
| width="14" valign="top" |
| valign="top" width="14" |
| width="11" valign="top" |
| valign="top" width="11" |
| width="118" valign="top" |
| valign="top" width="118" |
| width="112" valign="top" |
| valign="top" width="112" |
| width="303" valign="top" |
| valign="top" width="303" |
| width="229" valign="top" |
| valign="top" width="229" |
| width="151" valign="top" |  
| valign="top" width="151" |  
|}
|}
</center></div>
</center></div>  
S'utilise&nbsp;:
S'utilise&nbsp;:  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("<br/>Prénom&nbsp;:&nbsp;%s<br/>Nom&nbsp;:&nbsp;%s<br/>Née le&nbsp;:&nbsp;%s<br/>CB N°&nbsp;:&nbsp;%s<br/>", $table[1]->[0], $table[1]->[1], $table[1]->[2], $table[1]->[3]);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("<br>Prénom&nbsp;:&nbsp;%s<br>Nom&nbsp;:&nbsp;%s<br>Née le&nbsp;:&nbsp;%s<br>CB N°&nbsp;:&nbsp;%s<br>", $table[1]-&gt;[0], $table[1]-&gt;[1], $table[1]-&gt;[2], $table[1]-&gt;[3]);</code>  


&nbsp;
&nbsp;  


== Tableau de HASHage ==
== Tableau de HASHage ==


Se dit aussi&nbsp;:&nbsp;<font face="Times New Roman" size="2">les tableaux associatifs de scalaires (voir perldata ch. 4.1.1)</font>
Se dit aussi&nbsp;:&nbsp;<font size="2" face="times new roman">les tableaux associatifs de scalaires (voir perldata ch. 4.1.1)</font>  


&nbsp;
&nbsp;  


La première méthode la plus évidente est sûrment celle-ci&nbsp;:
La première méthode la plus évidente est sûrment celle-ci&nbsp;:  


&nbsp;
&nbsp;  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;(%hash)&nbsp;&nbsp;&nbsp; = ""; # Je déclare mon Hashage! et je mets rien dedans!</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;(%hash)&nbsp;&nbsp;&nbsp; = ""; # Je déclare mon Hashage! et je mets rien dedans!</code>  


<code>$hash{"clefs"} = "valeur";<br/>$hash{"prenom"} = "Guy";<br/>$hash{"nom"} = "Decarpentrie";</code>
<code>$hash{"clefs"} = "valeur";<br>$hash{"prenom"} = "Guy";<br>$hash{"nom"} = "Decarpentrie";</code>  


S'utilise&nbsp;:
S'utilise&nbsp;:  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Mr&nbsp;%s n'aime pas Alexia! (moi aussi&nbsp;:) Pourtant elle affirme qu'elle connaît bien&nbsp;%s!\n", $hash{"nom"}, $hash{"prenom"} );&nbsp;<br/># (no comment&nbsp;:)</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Mr&nbsp;%s n'aime pas Alexia! (moi aussi&nbsp;:) Pourtant elle affirme qu'elle connaît bien&nbsp;%s!\n", $hash{"nom"}, $hash{"prenom"} );&nbsp;<br># (no comment&nbsp;:)</code>  


&nbsp;
&nbsp;  


Une autre forme pour déclarer un HASHage
Une autre forme pour déclarer un HASHage  
<div align="center" style="color: rgb(83, 83, 83); font-family: Arial, sans-serif; font-size: medium;"><center>
<div style="font-family: arial, sans-serif; color: rgb(83,83,83); font-size: medium" align="center"><center>
{| border="0" width="619" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid;"
{| style="border-bottom-style: solid; border-right-style: solid; border-top-style: solid; border-left-style: solid" border="0" width="619"
|-
|-
| width="248" | <font size="2">#</font>
| width="248" | <font size="2">#</font>  
| width="15" |  
| width="15" |  
| width="802" colspan="3" |  
| width="802" colspan="3" |  
''Numéro de champ''
''Numéro de champ''  


|-
|-
| width="248" | <font size="2">#</font>
| width="248" | <font size="2">#</font>  
| width="15" |  
| width="15" |  
| width="72" align="center" |  
| width="72" align="middle" |  
<font size="2">nom du champ / Clé</font>
<font size="2">nom du champ / Clé</font>  


| width="20" align="center" |  
| width="20" align="middle" |  
| width="278" align="center" | <font size="2">valeur du champ</font>
| width="278" align="middle" | <font size="2">valeur du champ</font>
|-
|-
| width="248" | <code><font size="4"><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;(%table) =&nbsp;</font></code>
| width="248" | <code><font size="4"><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;(%table) =&nbsp;</font></code>  
| width="15" | <code><font size="4">(</font></code>
| width="15" | <code><font size="4">(</font></code>  
| width="72" |  
| width="72" |  
| width="20" |  
| width="20" |  
Ligne 397 : Ligne 399 :
| width="248" |  
| width="248" |  
| width="15" |  
| width="15" |  
| width="72" | <code><font size="4"><font color="#0000FF">"</font>René<font color="#0000FF">"</font>,</font></code>
| width="72" | <code><font size="4"><font color="#0000ff">"</font>René<font color="#0000ff">"</font>,</font></code>  
| width="20" | <code>=></code>
| width="20" | <code>=&gt;</code>  
| width="278" | <code><font size="4"><font color="#0000FF">"</font>1 Janvier 2002<font color="#0000FF">"</font>,</font></code>
| width="278" | <code><font size="4"><font color="#0000ff">"</font>1 Janvier 2002<font color="#0000ff">"</font>,</font></code>
|-
|-
| width="248" |  
| width="248" |  
| width="15" |  
| width="15" |  
| width="72" | <code><font size="4"><font color="#0000FF">"</font>Frédéric<font color="#0000FF">"</font>,</font></code>
| width="72" | <code><font size="4"><font color="#0000ff">"</font>Frédéric<font color="#0000ff">"</font>,</font></code>  
| width="20" | <code>=></code>
| width="20" | <code>=&gt;</code>  
| width="278" | <code><font size="4"><font color="#0000FF">"</font>31 Décembre 2030<font color="#0000FF">"</font>,</font></code>
| width="278" | <code><font size="4"><font color="#0000ff">"</font>31 Décembre 2030<font color="#0000ff">"</font>,</font></code>
|-
|-
| width="248" |  
| width="248" |  
| width="15" |  
| width="15" |  
| width="72" | <code><font size="4"><font color="#0000FF">"</font>Javier<font color="#0000FF">"</font>,</font></code>
| width="72" | <code><font size="4"><font color="#0000ff">"</font>Javier<font color="#0000ff">"</font>,</font></code>  
| width="20" | <code>=></code>
| width="20" | <code>=&gt;</code>  
| width="278" | <code><font size="4"><font color="#0000FF">"</font>2 Janvier 2002<font color="#0000FF">"</font>,</font></code>
| width="278" | <code><font size="4"><font color="#0000ff">"</font>2 Janvier 2002<font color="#0000ff">"</font>,</font></code>
|-
|-
| width="248" |  
| width="248" |  
| width="15" |  
| width="15" |  
| width="72" | <code><font size="4"><font color="#0000FF">"</font>...<font color="#0000FF">"</font>,</font></code>
| width="72" | <code><font size="4"><font color="#0000ff">"</font>...<font color="#0000ff">"</font>,</font></code>  
| width="20" | <code>=></code>
| width="20" | <code>=&gt;</code>  
| width="278" | <code><font size="4"><font color="#0000FF">"</font>...<font color="#0000FF">"</font></font></code>
| width="278" | <code><font size="4"><font color="#0000ff">"</font>...<font color="#0000ff">"</font></font></code>
|-
|-
| width="248" |  
| width="248" |  
| width="15" | <code><font size="4">);</font></code>
| width="15" | <code><font size="4">);</font></code>  
| width="72" |  
| width="72" |  
| width="20" |  
| width="20" |  
Ligne 437 : Ligne 439 :
| width="278" |  
| width="278" |  
|}
|}
</center></div>
</center></div>  
&nbsp;
&nbsp;  
 
S'utilise&nbsp;:
 
<br/><code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Vous êtes née le&nbsp;:&nbsp;%s\n", $table{"René"});</code>


$prenom = "René";
S'utilise&nbsp;:


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Vous êtes née le&nbsp;:&nbsp;%s\n", $table{$prenom});
<br><code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Vous êtes née le&nbsp;:&nbsp;%s\n", $table{"René"});</code>


&nbsp;
$prenom = "René";  


&nbsp;
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Vous êtes née le&nbsp;:&nbsp;%s\n", $table{$prenom});  


= Les boucles de Perl! =
&nbsp;


Les boucles permettent à un programme de répéter l'exécution d'une fonction, elles sont aussi importantes que les conditions...
&nbsp;


&nbsp;
= Les boucles de Perl!  =


== Avec FOR ==
Les boucles permettent à un programme de répéter l'exécution d'une fonction, elles sont aussi importantes que les conditions...


=== 1) Classique ===
&nbsp;


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">for&nbsp;</u>(<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;$compteur = 0; $compteur < 10&nbsp;; $ compteur++ )<br/>{<br/>&nbsp;&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Je sais compter jusqu'a&nbsp;:&nbsp;%d\n", $compteur);<br/>}</code>
== Avec FOR  ==


&nbsp;
=== 1) Classique  ===


=== 2) Raccourcie ===
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">for&nbsp;</u>(<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;$compteur = 0; $compteur &lt; 10&nbsp;; $ compteur++ )<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Je sais compter jusqu'a&nbsp;:&nbsp;%d\n", $compteur);<br>}</code>


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">for&nbsp;</u>(0 .. 10)<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Je sais compter jusqu'a&nbsp;:&nbsp;%d\n", $_);<br/>}</code>
&nbsp;  


&nbsp;
=== 2) Raccourcie  ===


== Avec FOR<font color="#00FF00">EACH</font> ==
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">for&nbsp;</u>(0 .. 10)<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Je sais compter jusqu'a&nbsp;:&nbsp;%d\n", $_);<br>}</code>  


La conditions de la boucle est simple&nbsp;: Elle boucle tant qu'il y a des données dans un tableau de scalaire ou tableau de hashage... Hum ...&nbsp;:
&nbsp;  


=== Avec une table de SCALAIRES ===
== Avec FOR<font color="#00ff00">EACH</font>  ==


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">foreach</u>&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;$tmp (@tableau)<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Dans ma table j'ai&nbsp;:&nbsp;%s comme valeur \n", $tmp);<br/>}</code>
La conditions de la boucle est simple&nbsp;: elle boucle tant qu'il y a des données dans un tableau de scalaire ou tableau de hashage... Hum ...&nbsp;:  


&nbsp;
=== Avec une table de SCALAIRES  ===


&nbsp;
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">foreach</u>&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;$tmp (@tableau)<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Dans ma table j'ai&nbsp;:&nbsp;%s comme valeur \n", $tmp);<br>}</code>


=== Avec une table de HASHage ===
&nbsp;


Reprenez la table de HASHage que l'on a nommé&nbsp;:&nbsp;'''%hash''', intégrons-là dans un&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">foreach</u>&nbsp;et observons&nbsp;:)<br/><font size="1">''On dit la référence de hashage!''</font>
&nbsp;  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">foreach</u>&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;$tmp (<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">keys</u>&nbsp;%hash)<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Dans ma table de HASHage la clé&nbsp;%s a pour valeur&nbsp;:&nbsp;%s\n", $tmp, $hash{$tmp});<br/>}</code>
=== Avec une table de HASHage  ===


Une petite remarque volontairement placée ici et pas avant&nbsp;:)<br/>Si vous avez exécuté le&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">foreach</u>&nbsp;dans un programme Perl vous constaterez que l'affichage de la table&nbsp;'''%hash&nbsp;'''n'est pas dans le même ordre que celui où nous l'avons crée! Cela peut paraître idiot, mais pour le moment la seule réponse à disposition est&nbsp;:&nbsp;[[File:
Reprenez la table de HASHage que l'on a nommé&nbsp;:&nbsp;'''%hash''', intégrons-là dans un&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">foreach</u>&nbsp;et observons&nbsp;:)<br><font size="1">''On dit la référence de hashage!''</font>


<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">foreach</u>&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;$tmp (<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">keys</u>&nbsp;%hash)<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Dans ma table de HASHage la clé&nbsp;%s a pour valeur&nbsp;:&nbsp;%s\n", $tmp, $hash{$tmp});<br>}</code>


Une petite remarque volontairement placée ici et pas avant&nbsp;:)<br>Si vous avez exécuté le&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">foreach</u>&nbsp;dans un programme Perl vous constaterez que l'affichage de la table&nbsp;'''%hash&nbsp;'''n'est pas dans le même ordre que celui où nous l'avons crée! Cela peut paraître idiot, mais pour le moment la seule réponse à disposition est&nbsp;:&nbsp;[[File:


== Avec While. ==
<br>


Tant que les conditions ne sont pas réunies tu continues à boucler!... Ainsi à l'intérieur des parenthèses de&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">while</u>&nbsp;se trouve la conditions qui déterminer le déroulement de cette fonction...&nbsp;:
== Avec While. ==


&nbsp;
Tant que les conditions ne sont pas réunies tu continues à boucler!... Ainsi à l'intérieur des parenthèses de&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">while</u>&nbsp;se trouve la condition qui détermine le déroulement de cette fonction...&nbsp;:


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($je_cherche) = 1024; # Ici, et comme dans la plupart des variables, on pourrait demander à Perl::ASP<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # d'y ajouter des informations qu'un utilisateur WEB aurait saisies dans un formulaire!<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($compte) = 1000;<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">while</u>( $je_cherche&nbsp;!= $compte )<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Je sortirais d'ici tant que j'aurais pas 1024 dans \$je_cherche!!\n");<br/>&nbsp;&nbsp; $compte ++;<br/>}<br/><br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("Enfin j'ai eu 1024!!! cela fait bien 1 Kilo Octet&nbsp;!!!\n");</code>
&nbsp;  


&nbsp;
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($je_cherche) = 1024; # Ici, et comme dans la plupart des variables, on pourrait demander à Perl::ASP<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # d'y ajouter des informations qu'un utilisateur WEB aurait saisies dans un formulaire!<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($compte) = 1000;<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">while</u>( $je_cherche&nbsp;!= $compte )<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Je sortirais d'ici tant que j'aurais pas 1024 dans \$je_cherche!!\n");<br>&nbsp;&nbsp; $compte ++;<br>}<br><br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("Enfin j'ai eu 1024!!! cela fait bien 1 Kilo Octet&nbsp;!!!\n");</code>


= <br/>Créez vos fonctions! =
&nbsp;


== Création d'une fonction&nbsp;: ==
= <br>Créez vos fonctions!  =


&nbsp;
== Création d'une fonction&nbsp;:  ==


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">sub</u>&nbsp;nom<br/>{<br/>&nbsp;&nbsp; votre code Perl.<br/>}</code>
&nbsp;  


Exemple&nbsp;:
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">sub</u>&nbsp;nom<br>{<br>&nbsp;&nbsp; votre code Perl.<br>}</code>


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">sub</u>&nbsp;euro_vers_francs<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($euro) = 2; # somme en Euro.<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($francs) = 0; # Bien sur à définir!<br/><br/>&nbsp;&nbsp; $francs = $euro * 6.55957;<br/><br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n", $euro, $francs);<br/>}&nbsp;</code>
Exemple&nbsp;:  


== Exécuter (ou interprètes) notre fonction&nbsp;: ==
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">sub</u>&nbsp;euro_vers_francs<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($euro) = 2; # somme en Euro.<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($francs) = 0; # Bien sur à définir!<br><br>&nbsp;&nbsp; $francs = $euro * 6.55957;<br><br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n", $euro, $francs);<br>}&nbsp;</code>


&nbsp;
== Exécuter (ou interprètes) notre fonction&nbsp;:  ==


<code><font color="#FF0000">&euro_vers_francs();</font></code>
&nbsp;  


&nbsp;
<code><font color="#ff0000">&amp;euro_vers_francs();</font></code>


<br/>Remarque&nbsp;: le & et ( ) ne sont pas obligatoire, malgrés cela habituez-vous à les écrire!
&nbsp;  


&nbsp;
<br>Remarque&nbsp;: le &amp; et ( ) ne sont pas obligatoires, malgré cela habituez-vous à les écrire!


&nbsp;
&nbsp;  


== Une fonction pour tout! ==
&nbsp;


La fonction que nous venons de créer a l'inconvénient d'être Statique. Oui quel que soit l'endroit, le moment, ... Elle affichera toujours la conversion de 2 Euros en Francs! Si nous voulons qu'elle convertisse toutes les sommes en Francs (celles qui intéressent le programmeur&nbsp;:) nous devons lui apprendre à utiliser les "arguments".
== Une fonction pour tout! ==


Les arguments sont des données que l'on transmet aux fonctions de notre choix.
La fonction que nous venons de créer a l'inconvénient d'être statique. Oui quel que soit l'endroit, le moment, ... Elle affichera toujours la conversion de 2 Euros en Francs! Si nous voulons qu'elle convertisse toutes les sommes en Francs (celles qui intéressent le programmeur&nbsp;:) nous devons lui apprendre à utiliser les "arguments".  


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">sub</u>&nbsp;euro_vers_francs<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($euro) = 2; # somme en Euro.<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($francs) = 0; # Bien sur à définir!</code>
Les arguments sont des données que l'on transmet aux fonctions de notre choix.  


<code>&nbsp;&nbsp; $euro =&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">shift</u>; # pour simplifier, on peut aussi remplacer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">shift</u>&nbsp;par&nbsp;<font color="#800000">@_</font>. Mais c'est pas bien!<br/><br/>&nbsp;&nbsp; $francs = $euro * 6.55957;<br/><br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n", $euro, $francs);<br/>}</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">sub</u>&nbsp;euro_vers_francs<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($euro) = 2; # somme en Euro.<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($francs) = 0; # Bien sur à définir!</code>  


&nbsp;
<code>&nbsp;&nbsp; $euro =&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">shift</u>; # pour simplifier, on peut aussi remplacer<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">shift</u>&nbsp;par&nbsp;<font color="#800000">@_</font>. Mais c'est pas bien!<br><br>&nbsp;&nbsp; $francs = $euro * 6.55957;<br><br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n", $euro, $francs);<br>}</code>


&nbsp;
&nbsp;  


== Renvoyer des informations ==
&nbsp;


&nbsp;
== Renvoyer des informations  ==


<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">sub</u>&nbsp;euro_vers_francs<br/>{<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($euro) = 2;&nbsp;&nbsp;&nbsp;&nbsp; # somme en Euro.<br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($francs) = 0;&nbsp; # Bien sur à définir!</code>
&nbsp;  


<code>&nbsp;&nbsp; $euro =&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">shift</u>; # pour simplifier, on peut aussi remplacer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">shift</u>&nbsp;par&nbsp;<font color="#FF0000">@_</font>. Mais c'est pas bien!<br/><br/>&nbsp;&nbsp; $francs = $euro * 6.55957;<br/><br/>&nbsp;&nbsp;&nbsp;<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">return</u>&nbsp;( $francs );<br/>}<br/><br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n",&nbsp;<font color="#006699">&euro_vers_francs(2)</font>&nbsp;);<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n",&nbsp;<font color="#006699">&euro_vers_francs(100)</font>&nbsp;);</code>
<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">sub</u>&nbsp;euro_vers_francs<br>{<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($euro) = 2;&nbsp;&nbsp;&nbsp;&nbsp; # somme en Euro.<br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($francs) = 0;&nbsp; # Bien sur à définir!</code>  


&nbsp;
<code>&nbsp;&nbsp; $euro =&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">shift</u>; # pour simplifier, on peut aussi remplacer<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">shift</u>&nbsp;par&nbsp;<font color="#ff0000">@_</font>. Mais c'est pas bien!<br><br>&nbsp;&nbsp; $francs = $euro * 6.55957;<br><br>&nbsp;&nbsp;&nbsp;<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">return</u>&nbsp;( $francs );<br>}<br><br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n",&nbsp;<font color="#006699">&amp;euro_vers_francs(2)</font>&nbsp;);<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("La somme en Euro de '%d' vaut&nbsp;%s en francs Français\n",&nbsp;<font color="#006699">&amp;euro_vers_francs(100)</font>&nbsp;);</code>


&nbsp;
&nbsp;  


&nbsp;
&nbsp;  


&nbsp;
&nbsp;  


= Perl et ASP =
&nbsp;


== Principes de l'ASP ==
= Perl et ASP =


ASP signifie&nbsp;:&nbsp;''Active Server Pages&nbsp;''soit Serveur de Pages Dynamiques... Il rend les pages dynamiques tout comme PHP. Perl::ASP peut fonctionner sur une multitude de systèmes d'exploitations&nbsp;: Unix, Windows, ... Enfin, avec les serveur WEB pouvant utiliser Perl par le module nommé "perl_mod"
== Principes de l'ASP ==


&nbsp;
ASP signifie&nbsp;:&nbsp;''Active Server Pages&nbsp;''soit Serveur de Pages Dynamiques... Il rend les pages dynamiques tout comme PHP. Perl::ASP peut fonctionner sur une multitude de systèmes d'exploitations&nbsp;: Unix, Windows, ... Enfin, avec les serveurs WEB pouvant utiliser Perl par le module nommé "perl_mod"


&nbsp;
&nbsp;  


&nbsp;
&nbsp;  


== Nécessaire ==
&nbsp;


Pour pouvoir créer des pages HTML dynamiques avec Perl::ASP, il conseillé d'avoir un certain nombre d'outils&nbsp;:
== Nécessaire  ==


Avoir des notions de programmation&nbsp;: html, perl ou autre langage script.;<br/>Un éditeur de texte<br/>Installé&nbsp;: Un serveur HTTP, le module ASP de Perl (ne pas oublier perl_mod ) et Perl&nbsp;!<br/>...
Pour pouvoir créer des pages HTML dynamiques avec Perl::ASP, il conseillé d'avoir un certain nombre d'outils&nbsp;:  


Avoir des notions de programmation&nbsp;: html, perl ou autre langage script.;<br>Un éditeur de texte<br>Installé&nbsp;: Un serveur HTTP, le module ASP de Perl (ne pas oublier perl_mod ) et Perl&nbsp;!<br>...


<br>


&nbsp;
&nbsp;  


<br/>Après quelques notions du langage Perl voici comment utiliser ce langage dans vos pages HTML.
<br>Après quelques notions du langage Perl voici comment utiliser ce langage dans vos pages HTML.  


&nbsp;
&nbsp;  
<blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><blockquote style="margin-left: 15px;"><blockquote style="margin-left: 15px;"><font size="5"><%<br/>....<br/>&nbsp;&nbsp;&nbsp; Votre code Perl<br/>...<br/>&nbsp;%></font></blockquote></blockquote></blockquote>
<blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><blockquote style="margin-left: 15px"><blockquote style="margin-left: 15px"><font size="5">&lt;%<br>....<br>&nbsp;&nbsp;&nbsp; Votre code Perl<br>...<br>&nbsp;%&gt;</font></blockquote></blockquote></blockquote>  
*&nbsp;'''<%'''&nbsp;<code>=nom_variable</code>&nbsp;'''%>'''&nbsp;est équivalent à&nbsp;: <%&nbsp;<code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">printf</u>("$non_vriable");</code>&nbsp;%> ou à <% <code>print "$non_vriable";</code>&nbsp;%>
*&nbsp;'''&lt;%'''&nbsp;<code>=nom_variable</code>&nbsp;'''%&gt;'''&nbsp;est équivalent à&nbsp;: &lt;%&nbsp;<code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">printf</u>("$non_vriable");</code>&nbsp;%&gt; ou à &lt;% <code>print "$non_vriable";</code>&nbsp;%&gt;


== Interroger un formulaire ==
== Interroger un formulaire ==


<br/><code><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($reponse) = $Request->Form("nom_du_champ");</code>
<br><code><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($reponse) = $Request-&gt;Form("nom_du_champ");</code>  


&nbsp;Exemple&nbsp;:
&nbsp;Exemple&nbsp;:  


La calculatrice pour calculer les euros en Francs!!!
La calculatrice pour calculer les euros en Francs!!!  


&nbsp;[http://download.gyptis.org//public/Perl::ASP/calculatrice_euro.asp calculatrice.asp] (<span style="font-size:xx-small;">24Ko</span>)
&nbsp;[http://download.gyptis.org//public/Perl::ASP/calculatrice_euro.asp calculatrice.asp] (<span style="font-size: xx-small">24Ko</span>)  


== Interroger l'URL ==
== Interroger l'URL ==


Cela consiste à lire les valeurs qui constitue l'URL.
Cela consiste à lire les valeurs qui constitue l'URL.  


Exemple&nbsp;:<br/>Appeler votre programme&nbsp;:
Exemple&nbsp;:<br>Appeler votre programme&nbsp;:  


&nbsp;'''<font color="#0000FF">http:// * url */Animation/test2.asp</font><font color="#FF0000">?</font>prenom=LeGlaude<font color="#FF0000">&</font>nom=Albertini<font color="#FF0000">&</font>ma_variable=ma_valeur'''
&nbsp;'''<font color="#0000ff">http:// * url */Animation/test2.asp</font><font color="#ff0000">?</font>prenom=LeGlaude<font color="#ff0000">&amp;</font>nom=Albertini<font color="#ff0000">&amp;</font>ma_variable=ma_valeur'''  


&nbsp;
&nbsp;  


=== 1) Un argument particulier ===
=== 1) Un argument particulier ===


<br/><u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;($valeur) = $Request->QueryString("nom de la variable");
<br><u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;($valeur) = $Request-&gt;QueryString("nom de la variable");  


&nbsp;
&nbsp;  


=== 2) Tous les argument de l'URL ===
=== 2) Tous les argument de l'URL ===


<u class="perl_fonction" style="color: rgb(89, 89, 255); font-size: 14pt;">my</u>&nbsp;(&nbsp;%hash_url ) =&nbsp;<font color="#008000">'''%{'''&nbsp;</font>$Request->QueryString()&nbsp;<font color="#008000">'''}'''</font>;
<u style="color: rgb(89,89,255); font-size: 14pt" class="perl_fonction">my</u>&nbsp;(&nbsp;%hash_url ) =&nbsp;<font color="#008000">'''%{'''&nbsp;</font>$Request-&gt;QueryString()&nbsp;<font color="#008000">'''}'''</font>;  


'''%hash_url'''&nbsp;contient une liste de type soit&nbsp;:
'''%hash_url'''&nbsp;contient une liste de type soit&nbsp;:  
<blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);">%hash_url = (<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'nom' => 'Albertini',<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'prenom' => 'Glaude'<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><br/></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><br/></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><br/></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><br/></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"></blockquote>
<blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px">%hash_url = (<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'nom' =&gt; 'Albertini',<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'prenom' =&gt; 'Glaude'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )</blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><br></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><br></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><br></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><br></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"></blockquote>  
= Liens utiles =
= Liens utiles =


{| border="0" width="604"
{| border="0" width="604"
|- style="font-family: Arial, sans-serif; font-size: medium;"
|- style="font-family: arial, sans-serif; font-size: medium"
| height="20" width="235" valign="top" | Une explication de Perl::ASP
| height="20" valign="top" width="235" | Une explication de Perl::ASP  
| height="20" width="40" valign="top" |  
| height="20" valign="top" width="40" |  
| height="20" width="309" valign="top" | [http://www.apache-asp.org/index.html http://www.apache-asp.org/index.html]
| height="20" valign="top" width="309" | [http://www.apache-asp.org/index.html http://www.apache-asp.org/index.html]
|- style="font-family: Arial, sans-serif; font-size: medium;"
|- style="font-family: arial, sans-serif; font-size: medium"
| height="21" width="235" valign="top" | Le lien original de Perldoc
| height="21" valign="top" width="235" | Le lien original de Perldoc  
| height="21" width="40" valign="top" |  
| height="21" valign="top" width="40" |  
| height="21" width="309" valign="top" | [http://www.enstimac.fr/Perl/DocFr.html http://www.enstimac.fr/Perl/DocFr.html]
| height="21" valign="top" width="309" | [http://www.enstimac.fr/Perl/DocFr.html http://www.enstimac.fr/Perl/DocFr.html]  
[http://www.enstimac.fr/Perl/ http://www.enstimac.fr/Perl]
[http://www.enstimac.fr/Perl/ http://www.enstimac.fr/Perl]  


|}
|}
</blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"><br/></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);"></blockquote></blockquote></blockquote><blockquote style="font-size: 8px; font-family: Arial; line-height: 12px; margin-left: 15px; color: rgb(83, 83, 83);">
</blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"><br></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px"></blockquote></blockquote></blockquote><blockquote style="line-height: 12px; font-family: arial; color: rgb(83,83,83); margin-left: 15px; font-size: 8px">
<span style="font-size:medium;"><span style="font-family:courier new,courier,monospace;"><tt>(Dernière modification&nbsp;: 20 Mai 2005)</tt></span></span>
<span style="font-size: medium"><span style="font-family: courier new, courier, monospace"><tt>(Dernière modification&nbsp;: 20 Mai 2005)</tt></span></span>  
</blockquote>
</blockquote>

Version du 15 mars 2012 à 21:34

AVERTISSEMENT

Ce document est destiné aux personnes n'ayant aucune connaissance du langage Perl, voire même aucune connaissance en programmation.

De plus, la mise en page est assez sommaire parce que ce texte a été importé sur ce site à partir d'un document HTML4+CSS2 et qu'il ne m'est pas possible de prendre d'avantage de temps pour améliorer sa présentation.

Merci pour votre compréhention.






Introduction à Perl 

Bien commencer!

Pour commencer, il faut créer un fichier que l'on nommera "intro_perl.pl". Toutes les lignes de programmation Perl qui suivent pourront être contenues dans ce fichier.

 

Afficher des informations avec Perl.

printf (" blabla j'afficheeee ");

avec retour à la ligne :

printf (" là, j'affiche avec un saut de ligne grâce à l' Anté Slash collé à la lette 'n' ");

Mémoriser des informations dans Perl

Une variable se reconnaît grâce au signe $ (dollar) à gauche d'un mot. Ce mot doit toujours commencer par une lettre et peut terminer par des chiffres ou des lettres... Comme indique le sujet de ce chapitre, elles servent à mémoriser des informations dans un programme Perl. Toutes ces informations sont appelées -> SCALAIRE ; je crois que ce mot à une signification mathématique... :)

Pour demander à Perl d'utiliser une variable, de la déclarer, on utilise la fonction "my" :

my ($ma_memoire) = "les informations à mémoriser";

  ou

my ($texte) = "Marin";
my ($chiffre) = "9";

Les données contenues dans les variables seront interprétées automatiquement par Perl. Par exemple si nos variables se trouvent dans un printf, Perl affichera leur contenu :

printf(" Contenu de texte : $texte, et de chiffre : $chiffre \n");


Remarque : Vous n'êtes pas obligé d'utiliser "my" pour déclarer vos variables, vous pouvez le faire sans! Mais, sans rentrer dans les détails, il est fortement conseillé d'utiliser "my" à chaque déclaration. Quand vous aurez à débuguer un programme Perl dans une page ASP, vous apprécierez sans aucun doute les bienfaits de son utilisation.

 

 

Comparer, conditions dans Perl

Tout langage de programmation possède un système de condition permettant aux ordinateurs de réagir selon des critères définis par le programmeur... Elles sont la base de l'informatique, sans elles nos ordinateurs ne feraient qu'afficher des informations ...

Exemple de comparaison de deux variables (Scalaire :)

if ($texte eq $chiffre)
{
   printf("Le contenu de la variable $texte est égal au contenu de la variable $chiffre\n");
}
else
{
   printf("\$texte et \$chiffre ne sont pas égal!\n");
}

 


Remarque : Ici on utilise l'Anté Slash pour dire à Perl de ne pas prendre $texte pour une variable mais seulement d'annuler l'effet du $ dans le print... 

Autres opérateurs de comparaison acceptés dans le "if( ... )" :

L'opérateur binaire "<" renvoie vrai si son opérande gauche est numériquement plus petit que son opérande droit.
L'opérateur binaire  ">" renvoie vrai si son opérande gauche est  numériquement  plus grand que son opérande droit.
L'opérateur binaire  "<=" renvoie vrai si son opérande gauche est  numériquement  plus petit ou égal que son opérande droit.
L'opérateur binaire  ">=" renvoie vrai si son opérande gauche est  numériquement  plus grand ou égal que son opérande droit.
L'opérateur binaire  "lt" renvoie vrai si son opérande gauche est alphabétiquement  plus petit que son opérande droit.
L'opérateur binaire  "gt" renvoie vrai si son opérande gauche est alphabétiquement  plus grand que son opérande droit.
L'opérateur binaire  "le" renvoie vrai si son opérande gauche est alphabétiquement  plus petit ou égal que son opérande droit.
L'opérateur binaire  "ge" renvoie vrai si son opérande gauche est alphabétiquement  plus grand ou égal que son opérande droit.

Notez cette liste, car d'autres fonctions de Perl les utilisent!

 

Utiliser les informations mémorisées

Afficher

printf permet de traiter les informations fixes mais aussi et surtout "les variables". Les informations fixes sont en général du texte qui ne change pas quel que soit le fonctionnement du programme ou bien de l'utilisation qu'en fait l'utilisateur. Seul ce qui est variable pourra changer lors de l'exécution d'un programme :

printf("Ton prénom est : $texte \n");       # N° 1
ou
printf("Ton prénom est : %s \n",  $texte); # N° 2

  • Si vous hésitez sur la forme à employer, préférez la N° 2...

Donc si $texte avait contenu le prénom "Cédric" plutôt que Marin, la fonction printf aurait bien sur imprimé "Cédric" mais n'aurait pas changé le reste qui se trouve dans le printf"Ton prénom est :"...

 

Autre exemple :

printf("Ton chiffre/nombre est : %d \n",  $chiffre);

 

Calculer

$chiffre = $chiffre * 100;
printf("Le nombre multiplié par 100 est égal à : %s \n",  $chiffre);

 

Ajouter

Lorsque votre programme reçoit des données, il peut-être nécessaire (souvent :) d'y ajouter d'autres informations ou simplement les arranger dans un ordre précis en fonction de vos critères.

my ($phrase) = ""; # ne pas oublier d'initialiser les variables! (si ce n'est pas déjà fait!)

$phrase = $texte . " a " . $chiffre . " ans.";

ou

$phrase = sprintf("%s  a  %d ans!",  $texte,  $chiffre);

print ("$phrase");

Donne : Marin a 900 ans!

 

Couper

De même qu'ajouter des informations, on peut avoir besoin d'en extraire. Ici on veut simplement enlever le "et" mais pas à n'importe quel prix! Il faut aussi demander à Perl de vérifier que tout se passe bien!

 

$phrase = "Perl et PHP"; # ici on n'utilise pas, volontairement, "my", car $phrase 
                                         # est déjà déclaré/connu de Perl.
my ($mot1) = ""; # On demande à Perl de déclarer $mot1, mais de ne rien y mettre...
my ($mot2) = ""; # ...

  1. On coupe en deux par rapport à un critère qui est " et " ; ça aurait pu être un espace!

($mot1, $mot2) = split (/ et /, $phrase, 2);

  1. On demande à Perl de s'assurer que les réponses de split soient correctes.

Ce n'est pas du tout obligatoire, mais ça permet d'éviter des surprises...

$mot1 = "" if ( !defined ($mot1) ); # on demande à Perl de placer du vide dans $mot1
                                                     # si celui-ci n'existe plus.
$mot2 = "" if ( !defined ($mot2) );

  1. On affiche le résultat.
    printf("Mot1 = %s, Mot2 : %s\n", $mot1, $mot2);

Remplacer

 

my ($mot) = "Hackers";
my ($crackers) = "les Hackers sont des pirates";

printf("%s ?\n", $crackers);

my ($nombre_trouve) = ($crackers =~ s/${mot}/Crackers/g);

printf("Non!, %s !\n", $crackers);
printf(" Le mot %s a été trouvé %s fois\n", $mot, $nombre_trouve);

 

 

Les Tableaux

(Pour plus de détails voir perldata)

Tableau de Scalaires

 

Perl comme tout langage propose de mémoriser des données sous forme de tableau.

Par exemple si on veut mémoriser des informations personnelles (ce n'est qu'un exemple :) comme le nom, prénom, la date de naissance, son numéro de carte bleue ... :) Il faudra déclarer un tableau comme suit :

 

my ( @tableau ) = ( 
                               "Cougnenc",
                               "René",
                               "1 Janvier 2002",
                               "0391 4389 6752 9172"

                             );

 

@tableau
nom
prenom
nee
carte_bleu

S'utilise :

printf("
Prénom : %s
Nom : %s
Né le : %s
CB N° : %s
", $tableau[0], $tableau[1], $tableau[2], $tableau[3]);

printf(" Vous avez : %d éléments dans votre tableau!", $#tableau);

 

 

Tableau plus complexe!

Se dit aussi : tableau associatif de SCALAIRES.

#

Numéros de champ

# Nom de la table 0 1 2 3
my (@table) =  (
[ "René", "Cougnenc", "1 Janvier 2002", "cb1" ], # 0
[ "Frédéric", "René", "31 Décembre 2030", "reste à donner" ], # 1
[ "Javier", "Garmendia", "2 Janvier 2002", "déjà donné" ], # 2
[ "...", "...", "...", "..." ]  # 3
);

S'utilise :

printf("
Prénom : %s
Nom : %s
Née le : %s
CB N° : %s
", $table[1]->[0], $table[1]->[1], $table[1]->[2], $table[1]->[3]);

 

Tableau de HASHage

Se dit aussi : les tableaux associatifs de scalaires (voir perldata ch. 4.1.1)

 

La première méthode la plus évidente est sûrment celle-ci :

 

my (%hash)    = ""; # Je déclare mon Hashage! et je mets rien dedans!

$hash{"clefs"} = "valeur";
$hash{"prenom"} = "Guy";
$hash{"nom"} = "Decarpentrie";

S'utilise :

printf("Mr %s n'aime pas Alexia! (moi aussi :) Pourtant elle affirme qu'elle connaît bien %s!\n", $hash{"nom"}, $hash{"prenom"} ); 
# (no comment :)

 

Une autre forme pour déclarer un HASHage

#

Numéro de champ

#

nom du champ / Clé

valeur du champ
my (%table) =  (
"René", => "1 Janvier 2002",
"Frédéric", => "31 Décembre 2030",
"Javier", => "2 Janvier 2002",
"...", => "..."
);

 

S'utilise :


printf("Vous êtes née le : %s\n", $table{"René"});

$prenom = "René";

printf("Vous êtes née le : %s\n", $table{$prenom});

 

 

Les boucles de Perl!

Les boucles permettent à un programme de répéter l'exécution d'une fonction, elles sont aussi importantes que les conditions...

 

Avec FOR

1) Classique

for (my $compteur = 0; $compteur < 10 ; $ compteur++ )
{
    printf("Je sais compter jusqu'a : %d\n", $compteur);
}

 

2) Raccourcie

for (0 .. 10)
{
   printf("Je sais compter jusqu'a : %d\n", $_);
}

 

Avec FOREACH

La conditions de la boucle est simple : elle boucle tant qu'il y a des données dans un tableau de scalaire ou tableau de hashage... Hum ... :

Avec une table de SCALAIRES

foreach my $tmp (@tableau)
{
   printf("Dans ma table j'ai : %s comme valeur \n", $tmp);
}

 

 

Avec une table de HASHage

Reprenez la table de HASHage que l'on a nommé : %hash, intégrons-là dans un foreach et observons :)
On dit la référence de hashage!

foreach my $tmp (keys %hash)
{
   printf("Dans ma table de HASHage la clé %s a pour valeur : %s\n", $tmp, $hash{$tmp});
}

Une petite remarque volontairement placée ici et pas avant :)
Si vous avez exécuté le foreach dans un programme Perl vous constaterez que l'affichage de la table %hash n'est pas dans le même ordre que celui où nous l'avons crée! Cela peut paraître idiot, mais pour le moment la seule réponse à disposition est : [[File:


Avec While.

Tant que les conditions ne sont pas réunies tu continues à boucler!... Ainsi à l'intérieur des parenthèses de while se trouve la condition qui détermine le déroulement de cette fonction... :

 

my ($je_cherche) = 1024; # Ici, et comme dans la plupart des variables, on pourrait demander à Perl::ASP
                                         # d'y ajouter des informations qu'un utilisateur WEB aurait saisies dans un formulaire!
my ($compte) = 1000;
while( $je_cherche != $compte )
{
   printf("Je sortirais d'ici tant que j'aurais pas 1024 dans \$je_cherche!!\n");
   $compte ++;
}

printf("Enfin j'ai eu 1024!!! cela fait bien 1 Kilo Octet !!!\n");

 


Créez vos fonctions!

Création d'une fonction :

 

sub nom
{
   votre code Perl.
}

Exemple :

sub euro_vers_francs
{
   my ($euro) = 2; # somme en Euro.
   my ($francs) = 0; # Bien sur à définir!

   $francs = $euro * 6.55957;

   printf("La somme en Euro de '%d' vaut %s en francs Français\n", $euro, $francs);

Exécuter (ou interprètes) notre fonction :

 

&euro_vers_francs();

 


Remarque : le & et ( ) ne sont pas obligatoires, malgré cela habituez-vous à les écrire!

 

 

Une fonction pour tout!

La fonction que nous venons de créer a l'inconvénient d'être statique. Oui quel que soit l'endroit, le moment, ... Elle affichera toujours la conversion de 2 Euros en Francs! Si nous voulons qu'elle convertisse toutes les sommes en Francs (celles qui intéressent le programmeur :) nous devons lui apprendre à utiliser les "arguments".

Les arguments sont des données que l'on transmet aux fonctions de notre choix.

sub euro_vers_francs
{
   my ($euro) = 2; # somme en Euro.
   my ($francs) = 0; # Bien sur à définir!

   $euro = shift; # pour simplifier, on peut aussi remplacer
                         # shift par @_. Mais c'est pas bien!

   $francs = $euro * 6.55957;

   printf("La somme en Euro de '%d' vaut %s en francs Français\n", $euro, $francs);
}

 

 

Renvoyer des informations

 

sub euro_vers_francs
{
   my ($euro) = 2;     # somme en Euro.
   my ($francs) = 0;  # Bien sur à définir!

   $euro = shift; # pour simplifier, on peut aussi remplacer
                         # shift par @_. Mais c'est pas bien!

   $francs = $euro * 6.55957;

   return ( $francs );
}

printf("La somme en Euro de '%d' vaut %s en francs Français\n", &euro_vers_francs(2) );
printf("La somme en Euro de '%d' vaut %s en francs Français\n", &euro_vers_francs(100) );

 

 

 

 

Perl et ASP

Principes de l'ASP

ASP signifie : Active Server Pages soit Serveur de Pages Dynamiques... Il rend les pages dynamiques tout comme PHP. Perl::ASP peut fonctionner sur une multitude de systèmes d'exploitations : Unix, Windows, ... Enfin, avec les serveurs WEB pouvant utiliser Perl par le module nommé "perl_mod"

 

 

 

Nécessaire

Pour pouvoir créer des pages HTML dynamiques avec Perl::ASP, il conseillé d'avoir un certain nombre d'outils :

Avoir des notions de programmation : html, perl ou autre langage script.;
Un éditeur de texte
Installé : Un serveur HTTP, le module ASP de Perl (ne pas oublier perl_mod ) et Perl !
...


 


Après quelques notions du langage Perl voici comment utiliser ce langage dans vos pages HTML.

 

<%
....
    Votre code Perl
...
 %>

  •  <% =nom_variable %> est équivalent à : <% printf("$non_vriable"); %> ou à <% print "$non_vriable"; %>

Interroger un formulaire


my ($reponse) = $Request->Form("nom_du_champ");

 Exemple :

La calculatrice pour calculer les euros en Francs!!!

 calculatrice.asp (24Ko)

Interroger l'URL

Cela consiste à lire les valeurs qui constitue l'URL.

Exemple :
Appeler votre programme :

 http:// * url */Animation/test2.asp?prenom=LeGlaude&nom=Albertini&ma_variable=ma_valeur

 

1) Un argument particulier


my ($valeur) = $Request->QueryString("nom de la variable");

 

2) Tous les argument de l'URL

my ( %hash_url ) = %{ $Request->QueryString() };

%hash_url contient une liste de type soit :

%hash_url = (
                        'nom' => 'Albertini',
                        'prenom' => 'Glaude'
                     )





Liens utiles

Une explication de Perl::ASP http://www.apache-asp.org/index.html
Le lien original de Perldoc http://www.enstimac.fr/Perl/DocFr.html

http://www.enstimac.fr/Perl


(Dernière modification : 20 Mai 2005)