Différences entre versions de « Perl »
De Didaquest
Aller à la navigationAller à la rechercheLigne 264 : | Ligne 264 : | ||
print "@food"; | print "@food"; | ||
− | .3) | + | '''.3)Les variables hachages(tableaux associatifs):''' |
− | + | Les tables de hachage sont aussi appelées tableaux associatifs (comme en PHP), dictionnaires (comme en Python), ou simplement hachages (hash | |
+ | en anglais) et constituent les structures de données les plus intéressantes de Perl. | ||
− | '''# Exemple de table de hachage en Perl :''' | + | '''# Exemple de table de hachage en Perl :''' |
− | # %tab est une table de hachage | + | # %tab est une table de hachage |
− | my %tab = (nom=>"DUPONT",prenom=>"Pierre",age=>23); | + | my %tab = (nom=>"DUPONT",prenom=>"Pierre",age=>23); |
− | # $tab{nom} est l'élément "nom" de la table de hachage : il vaut "DUPONT" et c'est un scalaire | + | # $tab{nom} est l'élément "nom" de la table de hachage : il vaut "DUPONT" et c'est un scalaire |
− | print "NOM : $tab{nom}\n"; | + | print "NOM : $tab{nom}\n"; |
− | print "Prénom : $tab{prenom}\n"; | + | print "Prénom : $tab{prenom}\n"; |
− | print "Age : $tab{age}\n"; | + | print "Age : $tab{age}\n"; |
− | ''' | + | '''b)Les structures de contrôle''' |
− | + | '''.1)Les conditions:''' | |
− | |||
− | |||
− | |||
− | + | Le if marche comme en C comme le montre l'exemple suivant : | |
− | + | if ($a) | |
− | + | { | |
− | + | print "La chaine n'est pas vide\n"; | |
− | + | } | |
− | + | else | |
− | + | { | |
− | + | print "La chaine est vide\n"; | |
− | + | } | |
− | + | ||
− | + | '''Les tests''' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Le if marche comme en C comme le montre l'exemple suivant : | ||
− | if ($a) | ||
− | { | ||
− | |||
− | } | ||
− | else | ||
− | { | ||
− | |||
− | } | ||
− | |||
− | '''Les tests''' | ||
− | Voici quelques tests qui retournent vrai ou faux : | + | Voici quelques tests qui retournent vrai ou faux : |
− | $a == $b # indique si $a est numériquement égal à $b? | + | $a == $b # indique si $a est numériquement égal à $b? |
− | $a != $b # indique si $a n'est pas égal numériquement à $b? | + | $a != $b # indique si $a n'est pas égal numériquement à $b? |
− | $a eq $b # indique si la chaîne de caractères $a est égale à la chaîne de caractères $b? | + | $a eq $b # indique si la chaîne de caractères $a est égale à la chaîne de caractères $b? |
− | $a ne $b # indique si la chaîne de caractères $a n'est pas égale à la chaîne de caractères $b? | + | $a ne $b # indique si la chaîne de caractères $a n'est pas égale à la chaîne de caractères $b? |
− | On peut aussi utiliser des opérateurs logiques : | + | On peut aussi utiliser des opérateurs logiques : |
− | ($a && $b) # $a ET $b | + | ($a && $b) # $a ET $b |
− | ($a || $b) # $a OU $b | + | ($a || $b) # $a OU $b |
− | !($a) # NON $a | + | !($a) # NON $a |
'''.2) Les boucles :''' | '''.2) Les boucles :''' | ||
Ligne 368 : | Ligne 335 : | ||
Les accolades sont néanmoins obligatoires. | Les accolades sont néanmoins obligatoires. | ||
+ | |||
+ | |||
+ | '''#Les fichiers''' | ||
+ | Voici un programme Perl qui affiche le contenu du fichier "/etc/passwd" en sortie standard. | ||
+ | |||
+ | #!/usr/local/bin/perl -w | ||
+ | # | ||
+ | |||
+ | $file = "/etc/passwd"; # Nom du fichier | ||
+ | open(INFO, $file); # ouverture du fichier | ||
+ | @lines = <INFO>; # lecture du fichier dans un tableau | ||
+ | close(INFO); # fermeture du fichier | ||
+ | print @lines; # affichage du tableau | ||
+ | |||
+ | La fonction open ouvre le fichier en lecture. Le premier argument est le descripteur de fichier qui permet à Perl de se référer au fichier. Le deuxième argument indique le nom du fichier. La fonction close indique à Perl de fermer le descripteur de fichier. Dans le programme ci-dessus, l'information est lue dans un fichier. Le fichier a pour descripteur INFO, et pour lire dans celui-ci, Perl utilise des angles. Ainsi, l'instruction | ||
+ | |||
+ | @lines = <INFO>; | ||
+ | |||
+ | lit le fichier référencé par INFO et met son contenu dans le tableau @lines. Notez que l'expression <INFO> lit le fichier entièrement en une seule fois. Ceci est dû au fait que la lecture a pour contexte une variable de tableau. Si @lines est remplacé par un scalaire $lines alors seule la prochaine ligne est lue. Dans chacun des cas, chaque ligne est stockée complètement avec son caractère "newline" à la fin. | ||
+ | |||
+ | Le fichier peut être ouvert en écriture également ou en ajout. Pour cela, il faut préfixer le nom du fichier avec > si écriture et un >> si ajout : | ||
+ | |||
+ | open(INFO, $file); # ouvert en lecture | ||
+ | open(INFO, ">$file"); # ouvert en écriture | ||
+ | open(INFO, ">>$file"); # ouvert en ajout | ||
+ | open(INFO, "<$file"); # ouvert en lecture | ||
+ | |||
+ | Pour écrire dans un fichier que vous avez déjà ouvert en écriture, vous pouvez utiliser l'instruction print avec un argument supplémentaire. Pour écrire une chaîne de caractères dans un fichier dont le descripteur de fichier est INFO, utiliser | ||
+ | |||
+ | print INFO "This line goes to the file.\n"; | ||
+ | |||
+ | Pour ouvrir l'entrée standard et la sortie standard, vous pouvez utilisez respectivement : | ||
+ | |||
+ | open(INFO, '-'); # Ouverture de l'entrée standard | ||
+ | open(INFO, '>-'); # Ouverture de la sortie standard | ||
Version du 23 mai 2021 à 21:40
Votre Publicité sur le Réseau |
Traduction
Traductions
Définition
Domaine, Discipline, Thématique
Justification
Définition écrite
- Perl (Practical Extraction and Report Language) ou (langage pratique d'extraction et de génération de rapports):
- Perl est un langage de programmation créé par Larry Wall en 1987 et reprenant des fonctionnalités du langage C et des langages de scripts sed, awk et shell (sh).
- C'est un langage interprété, polyvalent, et particulièrement adapté au traitement et à la manipulation de fichiers texte, notamment du fait de l'intégration des expressions régulières dans la syntaxe même du langage.
* Date de première version: 18 décembre 1987 .
* Paradigmes: Objet, impératif, fonctionnel, réflexif, procédural, événementiel, générique
* Auteur: Larry Wall
* Développeurs: The Perl Foundation
* Licence: Licence artistique 1.0[4][5] ou licence publique générale GNU[6] * Dernière version: 5.32.1 (23 janvier 2021) * Système d'exploitation: Multiplateforme
* Typage: Faible, dynamique
* Influencé par: C, BASIC, Eiffel, shell, sed, awk
* Écrit en: C
* Extensions de noms de fichiers: .plx, .pl, .pm, .xs, .t, .pod
* Site internet: www.perl.org
Il en existe plusieurs editeurs comme :* , *Notepad++......
Exemple use strict; use warnings; print "Hello, world!"; <>; La première ligne est un commentaire obligatoire qui indique l'endroit où les trouve l'interpréteur Perl. La deuxième ligne est une commande, qui imprimera Hello, world! à l'écran une fois exécuté le programme
Le mettre dans un fichier, par exemple helloworld.pl. Rendre le fichier exécutable (LINUX: chmod u+x helloworld.pl). Taper le nom du fichier helloworld.pl |
Perl - Historique (+)
Définition graphique
Concepts ou notions associés
Perl - Glossaire / (+)
Exemples, applications, utilisations
Erreurs ou confusions éventuelles
- Confusion entre Langage de programmation interprété - Langage de programmation compilé
- Confusion entre '''else if''' - '''elsif'''
- Confusion entre '''eq''' -'''=='''
- Erreur fréquente:
-Oublier que les indexes commencent par 0, et non 1. -Utiliser $_, $1, ou d’autres variables prédéfinie, puis modifier le code d’une manière qui les affecte indirectement. -Oublier que les expressions régulières sont gloutonnes, recherchant le plus long match, et non le plus court.
Questions possibles
- Pourquoi Perl ?Que puis-je faire avec Perl ?
- Est-ce que Perl tient la comparaison avec d'autres langages comme Java, Python, REXX, Scheme ou Tcl ?
- Quelle est la différence entre ``perl'' et ``Perl'' ?
- Parle-t-on de programme Perl ou de script Perl ?
- Comment rechercher un élément d'un hachage par sa valeur ?
- Comment faire l'équivalent en Perl d'une structure en C, d'une classe/d'un hachage en C++ ou d'un tableau de hachages ou de tableaux ?
- Comment obtenir l'unicité des clefs de deux hachages?
- Comment modifier un fichier binaire directement?
- Comment récupérer la date d'un fichier en perl ?
Liaisons enseignements et programmes
- Les bases de données : Il s'agit d'aborder le modèle relationnel, les systèmes de gestion de bases de données relationnelles et le langage SQL ;
et aussi les interfaces qui permettent la communication, la collecte des données et la commande des systèmes. Perl en tire une partie de sa grande puissance pour l'analyse et le traitement des données textuelles.
- Manipuler les expressions régulières: qui permettent de manipuler le texte de façon très puissante et très concise(L'acquisition de leur maîtrise peut s'avérer difficile au début, mais en vaut très largement la chandelle, aussi bien pour programmer en Perl que pour utiliser les outils classiques du shell ou les autres langages précédemment cités)en utilisant un langage simple d’usage, interprété, concis, libre et gratuit, multiplateforme et riche de bibliothèques adaptées (module CPAN).
- https://formation-perl.fr/
- https://www.orsys.lu/formation-langage-perl.html
- https://medium.com/@rhunold/comment-penser-comme-un-programmateur-le%C3%A7on-pour-pour-r%C3%A9soudre-des-probl%C3%A8mes-1f374a4b399f
}}
Aides et astuces
- Le langage Perl a un typage faible par rapport à des langages comme le langage C, de plus l'allocation de mémoire est prise en charge par l'interpréteur. * *Perl possède une caractéristique intéressante: le dimensionnement automatique des expressions, c'est-à-dire que selon le type de variable une expression sera évaluée différemment.
- Pour inclure des nouveaux chemins: avec l'option -I, par exemple pour inclure de dossier courant :
#!/usr/bin/perl -I.
- Gérer les entrées/sorties: Codage en utf8 avec l'option -C de perl : permet d'un coup et une bonne fois de tout basculer en utf8.
#!/usr/bin/perl -CSDA :
- Forcer la sortie : Pas d'instruction pour dire à Perl de vider un quelconque buffer, mais une directive pour lui indiquer que toutes les sorties doivent se faire sans attendre :
local $
Education: Autres liens, sites ou portails
Bibliographie
Pour citer cette page: ([1])
ABROUGUI, M & al, 2021. Perl. In Didaquest [en ligne]. <http:www.didaquest.org/wiki/Perl>, consulté le 21, novembre, 2024
Catégories :
- Sponsors Education
- Langage de programmation (Concepts)
- Algorithmique (Concepts)
- Informatique (Concepts)
- Informatique
- Algorithmique
- Programmation
- Langage de programmation
- Langage Perl
- Outils Perl
- Langages à classes
- Programmation impérative structurée
- Programmation déclarative
- Concepts
- Perl
- Perl (Concepts)
- Fiche conceptuelle didactique