Tutoriel Perl

Qu'est-ce que Perl ?

Perl est un langage de programmation dynamique de haut niveau, ร  usage gรฉnรฉral, interprรฉtรฉ. Perl est un terme signifiant ยซ Practical Extraction and Reporting Language ยป mรชme s'il n'y a pas d'acronyme pour Perl. Il a รฉtรฉ introduit par Larry Wall en 1987. Le langage Perl a รฉtรฉ spรฉcialement conรงu pour l'รฉdition de texte. Mais maintenant, il est largement utilisรฉ ร  diverses fins, notamment l'administration systรจme Linux, la programmation rรฉseau, le dรฉveloppement Web, etc.

Prรฉsentation des langages de programmation

Disons-le de maniรจre simple. Alors que les ordinateurs ne comprennent que les 0 et les 1 (langage binaire/langage machine/[langage de bas niveau]), il est trรจs difficile de programmer dans un langage binaire pour nous, humains. Perl est un langage de programmation qui utilise des รฉlรฉments du langage naturel, des mots utilisรฉs dans la langue anglaise courante et qui est donc plus facile ร  comprendre par les humains.langage de haut niveau]. Maintenant, il y a un problรจme ; les ordinateurs ne peuvent pas comprendre les langages de haut niveau, que nous, les humains, pouvons facilement comprendre. Pour cela, nous avons besoin de quelque chose qui puisse traduire le langage de haut niveau en langage de bas niveau. Ici, l'interprรจte vient ร  notre aide. L'interprรจte est un logiciel qui convertit le programme รฉcrit dans un langage de haut niveau en langage de bas niveau pour que l'ordinateur puisse comprendre et exรฉcuter les instructions รฉcrites dans le programme. Par consรฉquent, Perl est un langage de programmation interprรฉtรฉ.

Oรน Perl est-il utilisรฉ ?

La puissance du langage de script Perl peut รชtre mise en ล“uvre dans de nombreux domaines. L'utilisation la plus populaire de Perl est le dรฉveloppement Web. Perl est รฉgalement utilisรฉ pour automatiser de nombreuses tรขches sur les serveurs Web et d'autres tรขches d'administration, il peut gรฉnรฉrer automatiquement des e-mails et nettoyer les systรจmes. Perl est toujours utilisรฉ pour son objectif initial, c'est-ร -dire extraire des donnรฉes et gรฉnรฉrer des rapports. Il peut produire des rapports sur l'utilisation des ressources et vรฉrifier les problรจmes de sรฉcuritรฉ dans un rรฉseau. Pour cette raison, Perl est รฉgalement devenu un langage populaire utilisรฉ dans le dรฉveloppement Web, les rรฉseaux et la bioinformatique. En dehors de tout cela, Perl peut รฉgalement รชtre utilisรฉ pour la programmation CGI.

Perl peut รฉgalement รชtre utilisรฉ pour la crรฉation et la manipulation d'images. Outre cette mise en rรฉseau via telnet, FTP, etc., la crรฉation d'interface utilisateur graphique, l'รฉlectronique VLSI et la crรฉation de filtres de messagerie pour rรฉduire les pratiques de spam sont quelques cas d'utilisation de Perl.

Perl est รฉgalement connu pour la mise en ล“uvre de pratiques OOP (programmation orientรฉe objet) et prend en charge toutes les formes d'hรฉritage (simple, multiple et diamant), le polymorphisme et l'encapsulation. Perl est suffisamment flexible pour prendre en charge simultanรฉment les pratiques procรฉdurales et OOP. Perl dispose รฉgalement de modules supplรฉmentaires qui vous permettent d'รฉcrire ou d'utiliser/rรฉutiliser du code รฉcrit en Python, PHP, PDL, TCL, Octave, Java,C, C++, Basic, Ruby et Lua dans votre script Perl. Cela signifie que vous pouvez combiner Perl avec ces รฉlรฉments supplรฉmentaires langages de programmation plutรดt rรฉรฉcrire le code existant.

Applications du langage de programmation Perl

Applications du langage de programmation Perl

Pourquoi utiliser Perl ?

Il est vrai qu'il existe d'autres langages de programmation qui peuvent รชtre utilisรฉs pour faire tout ce qui a รฉtรฉ indiquรฉ ci-dessus, alors pourquoi devriez-vous utiliser spรฉcifiquement Perl ? Perl est trรจs facile ร  apprendre, surtout si vous avez une formation en programmation informatique. Perl a รฉtรฉ conรงu pour รชtre facile ร  รฉcrire et ร  comprendre par les humains plutรดt que de faciliter son traitement par les ordinateurs. Il utilise des expressions rรฉguliรจres. Son style naturel de langage est diffรฉrent des autres langages de programmation qui utilisent une grammaire et des syntaxes spรฉcifiques ; Par consรฉquent, Perl est trรจs flexible et ne vous impose aucune maniรจre particuliรจre de rรฉflรฉchir ร  une solution ou ร  un problรจme. Perl est extrรชmement portable. Il peut fonctionner sur n'importe quel systรจme d'exploitation dotรฉ d'un interprรฉteur Perl, il est donc indรฉpendant de la plate-forme. Tout Linux OperaLes systรจmes d'exploitation sont installรฉs avec Perl, ce qui vous permet de commencer ร  coder en Perl sous Linux dรจs la sortie de la boรฎte. Cela ne ressemble pas aux scripts Shell, oรน le code change en fonction de la version de distribution Linux utilisรฉe, ce qui le rend de moins en moins portable. Les petites tรขches spรฉcifiques en Perl deviennent trรจs simples et rapides. Tout au long de ce didacticiel Perl pour dรฉbutants, vous apprendrez comment coder de petits programmes rapides pour des tรขches spรฉcifiques. Prenons un exemple simple du programme classique Hello World qui est utilisรฉ pour commencer ร  apprendre n'importe quel langage de programmation dont les racines sont UNIX :

Exemple : Perl bonjour tout le monde

Exemple simple de Perl

#!/usr/bin/perl
print "Hello, world!";

Sortie :

Bonjour le monde!

Les deux lignes de code ci-dessus afficheront Hello, world ! N'รฉtait-ce pas trop simple et rapide ? Les รฉtudiants ayant des connaissances en C, C++ saura qu'il faut beaucoup plus de lignes de code pour obtenir le mรชme rรฉsultat dans ces langages.

Vous vous demandez peut-รชtre pourquoi Perl est si cรฉlรจbre sur le Web. C'est simple car la plupart des choses qui se passent sur le Web sont du TEXTE et Perl est trรจs bon en traitement de texte. Si nous comparons Perl avec l'un des langages, alors Perl sera le meilleur langage qui soit performant en matiรจre de gestion de fichiers, de traitement de texte et de reporting de sortie.

L'un des principaux avantages de Perl est qu'il gratuits

La communautรฉ Perl croit fermement que les logiciels doivent รชtre librement disponibles, librement modifiables et librement distribuables. Plusieurs bรฉnรฉvoles de la communautรฉ Perl s'efforcent de rendre le langage de programmation aussi bon que possible.

Avantages et inconvรฉnients de Perl

Avantages : Inconvรฉnients :

Avantages de Perl

Inconvรฉnients de Perl

  • Comparรฉ ร  d'autres langages de programmation, Perl est le plus puissant pour la gestion et l'analyse de texte.
  • Il s'agit d'un langage interprรฉtรฉ avec un temps d'exรฉcution rapide car il n'est pas nรฉcessaire de compiler un script Perl.
  • Simple et facile ร  programmer et ร  comprendre.
  • Il est orientรฉ objet.
  • La bibliothรจque CPAN facilite le dรฉveloppement Perl (nous en apprendrons davantage plus loin dans ce sujet).
  • Utilisรฉ dans le dรฉveloppement Web pour la plupart des passerelles de paiement.
  • Utilisรฉ dans l'automatisation et pour tester la plupart des รฉlรฉments liรฉs au rรฉseau et au stockage.
  • La prise en charge de l'interface graphique est minimale par rapport aux autres langages de programmation.
  • Vous devez vous rรฉfรฉrer ร  des modules de bibliothรจque complexes qui ne sont pas si faciles ร  comprendre (n'ayez pas peur une fois que vous saurez comment faire les choses, tout sera facile).
  • Comprendre des modรจles complexes nรฉcessite de l'expรฉrience.

Commenรงons!

Avec suffisamment de connaissances sur lโ€™histoire de Perl et les concepts de base de la programmation informatique requis pour le codage en Perl, il est temps de nous lancer et de commencer avec Perl. Le chapitre suivant vous apprendra comment configurer Perl sur votre systรจme et vous prรฉparer au voyage de codage en Perl. Ce didacticiel de script Perl prendra Linux comme systรจme d'exploitation que les รฉtudiants utiliseront pour coder en Perl.

Tรฉlรฉchargez et installez Perl โ€“ Windows, Mac et Linux

Comment obtenir Perl ?

Bonnes nouvelles vous l'avez probablement !

Mais si vous ne le trouvez pas dรฉjร  sur votre systรจme, vous pouvez toujours l'obtenir gratuitement.

Pour savoir si Perl est dรฉjร  installรฉ, accรฉdez ร  la ligne de commande et tapez : perl -v

Comment tรฉlรฉcharger Perl

La commande affichera la version de Perl si elle est installรฉe. Dans ce cas, la version est la v5.14.2. Mais sinonโ€ฆ pas de paniqueโ€ฆ

UnixTutoriel PERL pour dรฉbutants - Guide complet Dรฉjร  installรฉ Livrรฉ prรฉinstallรฉ avec Perl, mais vous devrez peut-รชtre mettre ร  jour vers la derniรจre version.
Mac OS Tutoriel PERL pour dรฉbutants - Guide complet Dรฉjร  installรฉ OSX est livrรฉ avec Perl prรฉinstallรฉ, bien que vous deviez peut-รชtre le mettre ร  jour avec la derniรจre version
WindowsTutoriel PERL pour dรฉbutants - Guide complet Besoin d'installer Deux options sont disponibles

  1. Strawberry Perl est une distribution binaire open source de Perl pour le Windows Systรจme d'exploitation. Il comprend un compilateur et des modules prรฉinstallรฉs qui offrent la possibilitรฉ d'installer des modules XS CPAN directement depuis CPAN.
  2. ActiveState Perl fournit une distribution binaire de Perl (pour de nombreuses plates-formes), ainsi que leur propre gestionnaire de packages Perl (PPM)

Mise ร  jour de Perl sous Linux :

Si vous devez mettre ร  jour la version Perl, entrez simplement une seule ligne de commande

sudo apt-get install perl

et dรฉtendre. Le reste sera pris en charge. Assurez-vous simplement d'avoir une connexion Internet active.

Mettre ร  jour PERL sous Linux

Mettre ร  jour PERL sous Linux

Installer Perl pour Windows:

Tout d'abord, tรฉlรฉchargez Active Perl ร  partir de ce lien. Suivez ces รฉtapes pour installer ActivePerl sur Windows systรจme. Voir les captures d'รฉcran ci-dessous pour la mรชme chose.

ร‰tape 1 : Une fois que vous avez tรฉlรฉchargรฉ le programme d'installation et dรฉmarrรฉ l'installation, vous verrez la fenรชtre ci-dessous, cliquez sur suivant pour continuer.

Comment installer Perl sur Windows

ร‰tape 2 : Acceptez le contrat de licence pour poursuivre lโ€™installation.

Comment installer Perl sur Windows

ร‰tape 3 : Vous trouverez ci-dessous diffรฉrents packages qui seront installรฉs. Par dรฉfaut, tous seront sรฉlectionnรฉs. La seule chose diffรฉrente est PPM (Perl Package Manager). Il s'agit de l'utilitaire fourni par Active Perl pour installer des modules ou bibliothรจques Perl externes sur votre systรจme. Cliquez sur Suivant pour continuer.

Installer Perl sur Windows

ร‰tape 4 : Ce sont diffรฉrents types d'extensions Perl qui peuvent รชtre utilisรฉes pour Perl. Nous utiliserons principalement .Pl, .Plx et .Pm pour Perl. Les modules Perl utilisent essentiellement .Pm comme extension de fichier pour faire rรฉfรฉrence ร  un fichier de bibliothรจque. Sรฉlectionnez toutes les options et cliquez sur le bouton Suivant.

Installer Perl sur Windows

ร‰tape 5 : Cliquez sur le bouton Installer pour procรฉder ร  l'installation.

Installer Perl sur Windows

ร‰tape 6 : Une fois installรฉ, exรฉcutez la commande ยซ Perl โ€“v ยป pour vรฉrifier si Perl est installรฉ avec succรจs sur votre systรจme.

Installation PERL sur Windows

Il y a beaucoup de choses qui doivent รชtre discutรฉes pour configurer l'environnement Perl sous Linux et Windows, car il n'y aura pas beaucoup de fichiers de bibliothรจque inclus dans cette installation. Vous devez les installer manuellement. Vous pouvez les installer manuellement ร  l'aide de CPAN (Comprehensive Perl Archive Network) ou PPM qui ne fonctionne que pour les fenรชtres Perl. Mais ces fichiers ne sont pas obligatoires pour commencer ร  coder en Perl.

En dehors de cette configuration de Windows, vous pouvez utiliser Windows 10 nouvelles fonctionnalitรฉs du sous-systรจme Linux sur Windows et utilisez-le pour exรฉcuter du code Perl

Premier programme Perl

Hello world!

Exemple Perl : Bonjour tout le monde

#!/usr/bin/perl -w
#this is just a commentโ€ฆ
print "Hello World";

Ne vous inquiรฉtez pas si vous ne comprenez pas ce texte. Tout sera bientรดt clair. Allez jeter un oeil par ligne :

#!/usr/bin/perl		

Cela dit au Operating System pour exรฉcuter ce fichier avec le programme situรฉ dans /usr/bin/perl Certains IDE n'ont pas besoin de cette ligne. Si c'est indispensable, vous devez รฉcrire ici un chemin vers votre interprรจte. Souviens-toi! Cette ligne spรฉciale doit รชtre au dรฉbut de votre programme et doit commencer par #! utiliser des avertissements ; Il s'agit d'une autre commande spรฉciale qui indique ร  l'interprรฉteur d'afficher tous les avertissements, c'est-ร -dire -w qui active les avertissements globalement.

print "Hello World";		

L'instruction d'impression รฉcrit du texte ร  l'รฉcran. Le point-virgule ร  la fin de la ligne indique ร  l'interprรฉteur Perl que l'instruction est terminรฉe. Vous devez mettre un point-virgule ร  la fin de chaque instruction dans le code Perl. Notez le guillemet (ยซ). C'est nรฉcessaire pour les instructions d'impression. Enregistrez le script ci-dessus sous firstprog.pl

On Windows

Si Strawberry est installรฉ, vous pouvez simplement cliquer sur Exรฉcuter. Vous pouvez รฉgalement exรฉcuter l'interface de ligne de commande et รฉcrire sur la console :

C:\> perl path\firstprog.pl		

ou, si perl.exe n'est pas sur votre chemin :

C:\> c:\perl\bin\perl.exe firstprog.pl		

Sous Linux/Unix

Il vous suffit d'ouvrir le Terminal et d'รฉcrire :

perl firstprog.pl		

Si vous ne pouvez pas exรฉcuter le programme, assurez-vous que vous รชtes รฉligible pour l'exรฉcuter. Tapez dans le terminal :

chmod +x firstprog.pl		

Votre programme est maintenant exรฉcutable et prรชt ร  รชtre exรฉcutรฉ. Pour exรฉcuter, รฉcrivez :

./firstprog		

Installer les modules cpan moins

Les modules sont un ensemble de codes utilisรฉs pour effectuer des tรขches qui effectuent des opรฉrations courantes dans plusieurs programmes. Si vous utilisez des modules Perl, vous n'avez pas besoin de rรฉรฉcrire les codes pour effectuer la mรชme opรฉration. Perl peut utiliser de telles bibliothรจques externes de codes. L'une des meilleures bibliothรจques est le CPAN. Cela signifie Comprehensive Perl Archive Network et contient une grande quantitรฉ de modules Perl que vous pouvez utiliser. C'est une communautรฉ ou un rรฉseau d'un grand nombre de dรฉveloppeurs qui contribuent ร  de tels modules. En installant le support des modules CPAN dans votre module perl, vous pouvez utiliser les modules CPAN et faciliter votre travail. La plupart des modules Perl sont รฉcrits en Perl, certains utilisent XS (ils sont รฉcrits en C) et nรฉcessitent donc un compilateur C (il est facile d'obtenir cette configuration - ne paniquez pas. Les modules peuvent avoir des dรฉpendances sur d'autres modules (presque toujours sur CPAN) et ne peuvent pas รชtre installรฉs sans eux (ou sans une version spรฉcifique de ceux-ci). Il vaut la peine de lire attentivement la documentation des options ci-dessous. De nombreux modules sur CPAN nรฉcessitent maintenant une version rรฉcente de Perl (version 5.8 ou supรฉrieure). Installez cpanminus un script pour obtenir, dรฉcompresser, construire et installer des modules depuis CPAN pour faciliter l'installation d'autres modules (vous nous remercierez plus tard). Pour installer App-cpanminus modules perl, dans la ligne de commande tapez :

cpan App::cpanminus

cpan App :: cpanminus Assurez-vous d'avoir une connexion Internet pendant le tรฉlรฉchargement et l'installation des modules Perl.

Installation des modules cpan moins

Maintenant, installez n'importe quel module :

cpan โ€“i <Module_Name>.		

Voyons un exemple d'installation d'un module File::Data (C'est une interface pour accรฉder aux donnรฉes de fichier).

Installation des modules cpan moins

Variable Perl

Maintenant, nous allons parler de variables. Vous pouvez imaginer une sorte de conteneur ressemblant ร  une variable qui contient une ou plusieurs valeurs. Une fois dรฉfini, le nom de la variable reste le mรชme, mais la ou les valeurs changent encore et encore.

Il existe 3 types de variables :

Types de variables en Perl

Types de variables en Perl

Les plus simples sont les scalaires, et c'est notre sujet aujourd'hui

Variable scalaire

Ce type de variable contient une seule valeur.

Son nom commence par un signe dollar et un identifiant Perl (c'est le nom de notre variable).

Variable scalaire en Perl

Variable scalaire en Perl

Convention de nommage

Si vous รชtes familier avec dโ€™autres langages de programmation, vous savez quโ€™il existe certaines rรจgles concernant la dรฉnomination des variables. De mรชme, Perl a trois rรจgles pour nommer les scalaires.

  1. Tous les noms scalaires commenceront par un $. Il est facile de se rappeler de prรฉfixer chaque nom avec $. Considรฉrez-le comme un $scalaire.
  2. Comme PHP. aprรจs le premier caractรจre $, qui est spรฉcial en Perl, les caractรจres alphanumรฉriques, c'est-ร -dire a ร  z, A ร  Z et 0 ร  9, sont autorisรฉs. Le caractรจre de soulignement est รฉgalement autorisรฉ. Utilisez le trait de soulignement pour diviser les noms de variables en deux mots. "Mais le premier caractรจre ne peut pas รชtre un nombre"
  3. Mรชme si les nombres peuvent faire partie du nom, ils ne peuvent pas apparaรฎtre immรฉdiatement aprรจs $. Cela implique que le premier caractรจre aprรจs $ sera soit une lettre de l'alphabet, soit le trait de soulignement. Ceux qui viennent de C/C++ lโ€™arriรจre-plan devrait รชtre immรฉdiatement capable de reconnaรฎtre la similitude. Exemples

Exemple Perl :

$var;
$Var32;
$vaRRR43;
$name_underscore_23;

Cependant, ce ne sont pas des noms de variables scalaires lรฉgaux.

mohohoh                                              # $ character is missing 
$                                                    # must be at least one letter 
$47x                                           # second character must be a letter
$variable!                                 # you can't have a ! in a variable name

La rรจgle gรฉnรฉrale dit que lorsque Perl n'a qu'un seul รฉlรฉment de quelque chose, c'est un scalaire. Les scalaires peuvent รชtre lus ร  partir d'appareils et nous pouvons les utiliser dans nos programmes.

Deux types de types de donnรฉes scalaires

  1. Numbers
  2. String

Numbers:

Dans ce type de donnรฉes scalaires on pourrait spรฉcifier :

  • des entiers, simplement des nombres entiers, comme 2, 0, 534
  • nombres ร  virgule flottante, ce sont des nombres rรฉels, comme 3.14, 6.74, 0.333

Variables numรฉriques en Perl

Remarque : En gรฉnรฉral, l'interprรฉteur Perl voit les entiers comme des nombres ร  virgule flottante. Par exemple, si vous รฉcrivez 2 dans vos programmes, Perl le verra comme 2.0000

Littรฉraux entiers :

Il se compose d'un ou plusieurs chiffres, รฉventuellement prรฉcรฉdรฉs d'un plus ou d'un moins et contenant des traits de soulignement.

Exemples Perl :

0;
-2542;
4865415484645          #this also can be written with underscores (for clarity) : 4_865_415_484_645

Comme vous pouvez le voir, ce n'est rien de spรฉcial. Mais croyez-moi, c'est le type de scalaire le plus courant. Ils sont partout.

Littรฉraux ร  virgule flottante :

Il se compose de chiffres, รฉventuellement moins, d'un point dรฉcimal et d'un exposant.

Exemples Perl :

3.14;
255.000;
3.6e20;                                  # it's 3.6 times 10 to the 20th
-3.6e20;                                 # same as above, but negative
-3.6e-20;                                #it's negative 3.6 times 10 to the -20th
-3.6E-20;                                #we also can use E โ€“ this means the same the lowercase version -3.6e-20

Littรฉraux ร  virgule flottante en Perl

Reprรฉsentation octale, hexadรฉcimale et binaire :

C'est une alternative au systรจme dรฉcimal. Permettez-moi de vous montrer la reprรฉsentation octale, hexadรฉcimale et binaire. Un petit tableau prรฉsente toutes les informations importantes sur ces styles รฉtranges :

Reprรฉsentation Base Procรฉdรฉ par
Octal 8 0 (zรฉro)
Hexadรฉcimal 16 0x
binaire 2 0b

Exemples Perl :

255;                               # 255 in decimal notation
0377;                                   # 255 in octal notation
0xff;                                   # 255 in hexadecimal notation
0b11111111;                             # 255 in binary notation

Toutes ces valeurs pour Perl signifient la mรชme chose. Perl ne stocke pas les valeurs dans le mรชme format. Il convertira en interne ces valeurs hexadรฉcimales, binaires et octales en valeurs dรฉcimales.

L'affectation est l'opรฉration la plus courante sur un scalaire, et elle est trรจs simple. Perl utilise ce signe รฉgal. Il prend une valeur de l'expression du cรดtรฉ droit et met cette valeur dans notre variable.

Jetons un coup d'ล“il ร  des exemples :

$size=15;             # give $size value of 15
$y = -7.78;           # give $y value of -7.78

De plus, vous pouvez mettre dans une variable non seulement un nombre, mais aussi une expression.

$z = 6 + 12               # give $z value of 18

String

Strings : Cโ€™est aussi un type de scalaire trรจs simple.

La longueur maximale d'une chaรฎne en Perl dรฉpend de la quantitรฉ de mรฉmoire dont dispose l'ordinateur. Il n'y a pas de limite ร  la taille de la chaรฎne, n'importe quel nombre de caractรจres, symboles ou mots peut constituer vos chaรฎnes. La chaรฎne la plus courte ne contient aucun caractรจre. Le plus long peut remplir toute la mรฉmoire systรจme. Les programmes Perl peuvent รชtre entiรจrement รฉcrits avec un jeu de caractรจres ASCII 7 bits. Perl vous permet รฉgalement d'ajouter n'importe quel jeu de caractรจres 8 bits ou 16 bits. caractรจres non-ASCII dans les chaรฎnes littรฉrales. Perl a รฉgalement ajoutรฉ la prise en charge d'Unicode UTF-8.

Types de chaรฎnes en Perl

Comme les nombres, il existe deux types de chaรฎnes diffรฉrents :

  • Littรฉraux de chaรฎne de guillemets simples
  • Double guillemets des chaรฎnes littรฉrales

Littรฉraux de chaรฎne entre guillemets simples

Les guillemets simples sont utilisรฉs pour encadrer les donnรฉes que vous souhaitez prendre au pied de la lettre. Un petit exemple et tout devrait รชtre clair :

Exemples Perl :

#!/usr/bin/perl 
$num = 7;
$txt = 'it is $num';
print $txt;

Sortie :

c'est num $

Ici, en raison des guillemets simples, la valeur de $num n'est pas prise et les caractรจres littรฉraux '$','n', 'u' et 'm' sont ajoutรฉs ร  la valeur de $txt.

Double-chaรฎnes littรฉrales entre guillemets

Double Les guillemets sont utilisรฉs pour encadrer les donnรฉes qui doivent รชtre interpolรฉes avant le traitement. Cela signifie que les caractรจres et les variables รฉchappรฉs ne sont pas simplement insรฉrรฉs littรฉralement dans les opรฉrations ultรฉrieures, mais sont รฉvaluรฉs sur place. Les caractรจres d'รฉchappement peuvent รชtre utilisรฉs pour insรฉrer des sauts de ligne, des tabulations, etc.

Exemples Perl :

$num = 7; 
$txt = "it is $num"; 
print $txt;

Sortie :

c'est 7

Ici, en raison des guillemets doubles, la valeur de $num est ajoutรฉe ร  la valeur de $txt

DoubleLes guillemets interpolent les variables scalaires et les variables de tableau, mais pas les hachages. D'un autre cรดtรฉ, vous pouvez utiliser des guillemets doubles pour interpoler des tranches de tableaux et de hachages.

Mystรฉrieux \n

Considรฉrez le programme suivant

Exemples Perl :

print "hello \n";

Sortie :

hello

Perl n'affiche pas seulement ยซ bonjour\n ยป, mais seulement ยซ bonjour ยป. Pourquoi? Parce que '\n' est un signe spรฉcial et signifie que vous souhaitez passer ร  une nouvelle ligne tout en affichant le texte dans votre programme. imprimer ยซ bonjour\n nouvelle ligne ยป ; Question suivante : y a-t-il un autre signe spรฉcial ? Oui, ils sont! Mais ne vous inquiรฉtez pas, juste quelques-uns. Consultez le tableau ci-dessous

Construire Description
\n nouvelle ligne
\r retourner
\t languette
\f saut de page
\b backspace
\a cloche
\e รฉchapper
\ 007 toute valeur octale ASCII (ici, 007 = cloche)
\x7f n'importe quelle valeur hexadรฉcimale (ici, 7f = supprimer)
\\ barre oblique inverse
\ " double citation
\l lettre suivante en minuscule
\L minuscules toutes les lettres suivantes jusqu'ร  \E
\u lettre suivante en majuscule
\U mettre en majuscule toutes les lettres suivantes jusqu'ร  \E
\E Terminer \L, \U

Je sais, il n'y en a pas ยซ quelques-uns ยปโ€ฆ Mais croyez-moi, il faut savoir juste

Variable de chaรฎnes

C'est la mรชme opรฉration que celle que l'on voit dans l'attribution des nombres. Perl rรฉcupรจre notre chaรฎne du cรดtรฉ droit du signe รฉgal et place cette chaรฎne dans une variable.

Exemples Perl :

$string = 'tutorial';                                      # give $string the eight-character string 'tutorial'
print $string;
$string = $size + 3 ;                                           # give $string the current value of $size plus 3
print $string;
$string = $ string * 5;                                         # multiplied $string by 5
print $string;

Sortie :

tutoriel315

Comme vous pouvez le voir, vous pouvez mettre des nombres et des chaรฎnes dans les mรชmes variables. Il n'y a pas de classe de variables.

Concatรฉnation de chaรฎnes (point) :

L'opรฉrateur de concatรฉnation "." unit deux ou plusieurs chaรฎnes. Souviens-toi! Si la chaรฎne contient des guillemets, des retours chariot, des barres obliques inverses, tous ces caractรจres spรฉciaux doivent รชtre รฉchappรฉs avec une barre oblique inverse.

Variable Perl ' ' Exemples :

#!/usr/bin/perl
$a = "Tom is";
$b = "favorite cat";
$c = $a ." mother's ". $b;
print $c;

Sortie :

Tom est le chat prรฉfรฉrรฉ de sa mรจre

Les cordes

"$a", "$b", est concatรฉnรฉ et stockรฉ dans "$c" ร  l'aide du "." opรฉrateur.

ร€ la finโ€ฆ

Conversion entre Numbers et chaรฎnes :

Comme vous le savez, Perl convertit automatiquement les nombres en chaรฎnes selon les besoins. Comment Perl sait-il ce dont nous avons besoin en ce moment ? C'est simple - tout dรฉpend de l'opรฉrateur (nous parlerons des opรฉrateurs plus tard, maintenant, acceptez simplement qu'il y a beaucoup d'opรฉrateurs, diffรฉrents pour les nombres et les chaรฎnes) Si un opรฉrateur attend un nombre, Perl utilisera la valeur comme un nombre . Si un opรฉrateur attend une chaรฎne, Perl utilisera la valeur comme chaรฎne. En dโ€™autres termes, vous nโ€™avez pas ร  vous soucier de ce type de conversion. Court exemple et tout devrait รชtre clair :

Exemples Perl :

$string = "43";
$number = 28;
$result = $string + $number;
print $result;

Sortie :

71

la valeur de $string est convertie en entier et ajoutรฉe ร  la valeur de $number.

Le rรฉsultat de l'addition, 71, est affectรฉ ร  $result.

Portรฉe d'une variable โ€“ Modificateurs d'accรจs

Nous pouvons dรฉclarer un scalaire nโ€™importe oรน dans le programme. Mais vous devez spรฉcifier un modificateur d'accรจs

Il existe 3 types de modificateurs

  1. my
  2. locales
  3. nos

My : En utilisant ceci, vous pouvez dรฉclarer n'importe quelle variable spรฉcifique au sein du bloc. c'est-ร -dire entre les accolades.

#!/usr/bin/perl 
my $var=5;
if(1)
{ 
my $var_2 =$var;
}
print $var_2;

Aucune sortie

Le rรฉsultat du programme ne sera rien !

Tutoriel PERL pour dรฉbutants - Guide complet

Dans l'exemple ci-dessus, vous verrez qu'il y a deux variables dรฉclarรฉes, l'une est ร  l'intรฉrieur du bloc if ($var_2) et l'autre est ร  l'extรฉrieur du bloc If ($var). La variable dรฉclarรฉe ร  l'extรฉrieur du bloc sera accessible ร  if block mais la variable qui a รฉtรฉ dรฉclarรฉe ร  l'intรฉrieur de if block ne sera pas accessible au programme externe.

Local : en utilisant cela, nous pouvons en fait masquer les mรชmes valeurs de variable en diffรฉrentes valeurs sans rรฉellement changer la valeur d'origine de la variable, supposons que nous ayons une variable $a pour laquelle la valeur est affectรฉe ร  5, vous pouvez rรฉellement modifier la valeur de cette variable en re-dรฉclarer la mรชme variable en utilisant le mot-clรฉ local sans modifier la valeur d'origine de la variable qui est 5. Voyons comment cela fonctionne avec un exemple.

#!/usr/bin/perl
$var = 5;
{
local $var = 3;
print "local,\$var = $var \n";
}
print "global,\$var = $var \n";

La sortie du programme ci-dessus sera de cette maniรจre.

local, $var = 3

global, $var = 5

De cette faรงon, nous pouvons modifier la valeur de la variable sans affecter la valeur d'origine.

Notre : Une fois qu'une variable est dรฉclarรฉe avec le modificateur d'accรจs ยซ notre ยป, elle peut รชtre utilisรฉe dans l'ensemble du package. Supposons que vous ayez un module Perl ou un package test.pm qui a une variable dรฉclarรฉe avec la portรฉe our. Cette variable est accessible dans tous les scripts qui utiliseront ce package.

Si vous รชtes sรฉrieux au sujet de la programmation en Perl, vous devriez commencer votre programme par

#! / usr / local / bin / perl

utiliser strict;

Cela vous aidera ร  รฉcrire un code meilleur et plus propre. 'use strict' active le pragma strict qui vous fera dรฉclarer vos variables avec mon mot-clรฉ.

C'est une bonne pratique de programmation

#!/usr/local/bin/perl
use strict;
$var = 10;
print "$var";

Rรฉsultat : erreur

#!/usr/local/bin/perl
use strict;
my $var = 10;
print "$var";

Sortie :

10

Tableau Perl

Quโ€™est-ce que le tableau Perl ?

Un tableau est un type spรฉcial de variable qui stocke les donnรฉes sous forme de liste ; chaque รฉlรฉment est accessible ร  l'aide du numรฉro d'index qui sera unique pour chaque รฉlรฉment. Vous pouvez stocker des nombres, des chaรฎnes, des valeurs flottantes, etc. dans votre tableau. Cela a l'air gรฉnial, alors comment crรฉer un tableau en Perl ? En Perl, vous pouvez dรฉfinir un tableau en utilisant le caractรจre '@' suivi du nom que vous souhaitez donner. Considรฉrons la dรฉfinition d'un tableau en Perl.

mon @array ;

C'est ainsi que nous dรฉfinissons un tableau en Perl ; vous pensez peut-รชtre ร  la maniรจre dont nous devons y stocker des donnรฉes. Il existe diffรฉrentes maniรจres de stocker des donnรฉes dans un tableau. Cela dรฉpend de la faรงon dont vous allez l'utiliser.

my @array=(a,b,c,d);
print @array;

Sortie :

ABCD

Il s'agit d'un tableau contenant 4 รฉlรฉments.

L'index du tableau commence ร  0 et se termine ร  sa taille maximale dรฉclarรฉe, dans ce cas, la taille maximale de l'index est 3.

Exemple de tableau Perl

Exemple de tableau Perl

Vous pouvez รฉgalement dรฉclarer un tableau de la maniรจre ci-dessus ; la seule diffรฉrence est qu'il stocke les donnรฉes dans un tableau en considรฉrant un espace blanc comme dรฉlimiteur. Ici, qw() signifie mot de citation. L'importance de cette fonction est de gรฉnรฉrer une liste de mots. Vous pouvez utiliser qw de plusieurs maniรจres pour dรฉclarer un tableau.

@array1=qw/a b c d/;
@array2= qw' p q r s'; 
@array3=qw { v x y z};
print @array1;
print @array2;
print @array3;

Sortie :

abcdpqrsvxyz

Supposons que vous souhaitiez attribuer une valeur au 5th รฉlรฉment dโ€™un tableau, comment allons-nous faire cela.

$tableau [4] = 'e';

Tableau sรฉquentiel

Les tableaux sรฉquentiels sont ceux dans lesquels vous stockez les donnรฉes de maniรจre sรฉquentielle. Supposons que vous souhaitiez stocker 1 ร  10 nombres ou alphabets az dans un tableau. Au lieu de taper toutes les lettres, vous pouvez essayer quelque chose comme ci-dessous :

@numbers= (1..10);
print @numbers;                   #Prints numbers from 1 to 10;

Sortie :

12345678910

Taille du tableau Perl

Nous avons un tableau qui est dรฉjร  disponible, et vous ne savez pas quelle est la taille de ce tableau, alors quel est le moyen possible de le trouver.

@array= qw/a b c d e/;
print $size=scalar (@array);

Pouvons-nous obtenir la taille dโ€™un tableau sans utiliser de fonctions ? Oui nous pouvons.

@array= qw/a b c d e/;
print $size=scalar (@array);
print "\n";
print $size=$#array + 1;                           # $#array will print the Max Index of the array, which is 5 in this case

Sortie :

5

5

Tableau dynamique

La mรฉthode ci-dessus pour dรฉclarer un tableau est appelรฉe tableaux statiques, oรน vous connaissez la taille d'un tableau.

Quโ€™est-ce que le tableau dynamique ?

Les tableaux dynamiques sont ceux que vous dรฉclarez sans spรฉcifier aucune valeur. Alors, quand exactement stockons-nous les valeurs dans ce tableau ? Simple, nous les stockons pendant l'exรฉcution. Voici un programme simple pour cela.

Nous utiliserons certaines fonctions Perl intรฉgrรฉes pour effectuer cette tรขche.

my $string="This is a kind of dynamic array";
my @array;
@array=split('a',$string);
foreach(@array)
{
print "$_ \nโ€;
# This is a special variable which stores the current value.
}

Sortie :

Voici

une sorte de dynamisme

micro

rr

y

La fonction split divise le contenu de la chaรฎne en un tableau en fonction du dรฉlimiteur qui lui est fourni. Cette fonction รฉliminera รฉgalement le dรฉlimiteur de la chaรฎne, dans ce cas, il s'agit de ยซ a ยป ;

Push, Pop, Shift, Unshift pour les tableaux Perl :

Ces fonctions peuvent รชtre utilisรฉes en Perl pour ajouter/supprimer des รฉlรฉments d'un tableau.

  • Perl Push : ajoute un รฉlรฉment de tableau ร  la fin d'un tableau existant.
  • Perl Pop : supprime le dernier รฉlรฉment d'un tableau.
  • Perl Shift: supprime le premier รฉlรฉment d'un tableau.
  • Perl Unshift : ajoute un รฉlรฉment au dรฉbut d'un tableau.

Fonctions de tableau en Perl

Voyons un exemple oรน nous pouvons utiliser les fonctions ci-dessous.

@days = ("Mon","Tue","Wed");
print "1st : @days\n";
push(@days, "Thu");                                             # adds one element at the end of an array
print "2nd when push : @days\n";
unshift(@days, "Fri");                                          # adds one element at the beginning of an array
print "3rd when unshift : @days\n";
pop(@days);
print "4th when pop : @days\n";                                 # remove one element from the last of an array.
shift(@days);                                                   # remove one element from the beginning of an array.
print "5th when shift : @days\n";

Sortie :

1er : Lun Mar Mer

2รจme lors de la poussรฉe : Lun Mar Mer Jeu

3รจme lors du dรฉcalage : ven lun mar mer jeu

4รจme quand pop : Ven Lun Mar Mer

5รจme quand quart de travail : Lun Mar Mer

Hachages Perl

Pourquoi avons-nous besoin de Hash ?

Nous avons dรฉjร  dรฉcouvert les scalaires et les tableaux dans les sections prรฉcรฉdentes.

Que font exactement les scalaires ? Il ne stocke que des entiers et des chaรฎnes.

ร€ quoi servent exactement les tableaux ? Il s'agit d'une collection de scalaires, oรน vous accรฉdez ร  chaque รฉlรฉment d'un tableau ร  l'aide d'indices. Mais est-ce une bonne idรฉe dโ€™utiliser un tableau lorsque vous avez des centaines et des milliers dโ€™enregistrements ? Nous oublierons quel indice a quelle valeur. Pour surmonter cette situation, nous avons quelque chose comme le hachage Perl.

Que sont les hachages ?

Un hachage peut รฉgalement contenir autant de scalaires que le tableau peut en contenir. La seule diffรฉrence est que nous nโ€™avons pas dโ€™index mais plutรดt des clรฉs et des valeurs. Un hachage peut รชtre dรฉclarรฉ en commenรงant par % suivi du nom du hachage. Voyons un exemple comment nous pouvons dรฉfinir un hachage Perl et comment nous pouvons le diffรฉrencier d'un tableau.

Prenons l'exemple de trois personnes et leurs รขges sont reprรฉsentรฉs dans un tableau.

@array=('Sainath',23,'Krishna',24,'Shruthi',25);        #This is how an array looks.
print @array;

Sortie :

Sainath33Krishna24Shruthi25

De cette faรงon, il est difficile de connaรฎtre lโ€™รขge individuel car nous devons nous souvenir ร  la fois des emplacements dโ€™index du nom et de lโ€™รขge de toutes les personnes. Cโ€™est peut-รชtre simple quand on a 3 noms, mais quand on en a 1000 ou plus ? Vous connaissez la rรฉponse.

Hachages en Perl

Nous pouvons surmonter ce problรจme en utilisant un hachage.

Exemple de hachage :

print %hash=( 'Sainath' => 23, 'Krishna' => 24, 'Shruthi' => 25); # This is how we create a hash.
print %hash=('Sainath',23,'Krishna',24,'Shruthi',25);# This way of assigning is called list.

Sortie :

Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi25

Nous avons maintenant dรฉclarรฉ un hachage, super !! Mais comment y accรฉder ou lโ€™imprimer ? Chaque รฉlรฉment du hachage doit รชtre accessible avec sa clรฉ associรฉe pour laquelle une valeur sera attribuรฉe. Il existe donc un mappage un-un entre chacune des clรฉs et des valeurs dans le hachage.

Pour imprimer lโ€™รขge dโ€™une personne, il vous suffit de vous souvenir de son nom.

print $hash{'Krishna'};          # This how we should access a hash. Key enclosed within {}.

Vous vous รชtes peut-รชtre demandรฉ pourquoi j'avais utilisรฉ $hash{KeyName}, rappelez-vous qu'un hachage est encore une fois une collection de scalaires. Ainsi, nous pouvons utiliser $ qui reprรฉsente un scalaire pour accรฉder ร  chaque รฉlรฉment de hachage.

Exemple de hachage en Perl

Remarque : Chaque clรฉ de hachage doit รชtre unique, sinon elle remplacera votre valeur, qui a รฉtรฉ attribuรฉe prรฉcรฉdemment.

Comment pouvons-nous attribuer un hachage ร  un autre hachage ? Simple, de la mรชme maniรจre que nous le faisons pour

Nous pouvons รฉgalement imprimer le hash entier.

%hash=( 'Tom' => 23);
%newHash=%hash; # Assigning hash to a new hashprint %newHash; 
print %newHash;

Sortie :

Tom23

Ajouter des hachages Perl

Comme vous pouvez le voir, nous avons dรฉjร  un hachage %newHash, et nous devons maintenant y ajouter plus d'entrรฉes.

$newHash{'Jim'}=25;
$newHash{'John'}=26;
$newHash{'Harry'}=27;
print %newHash;

Sortie :

Jim25John26Harry27

Clรฉ de suppression Perl

Vous souhaiterez peut-รชtre supprimer une entrรฉe d'un hachage. C'est ainsi que nous pouvons procรฉder.

delete $newHash{'Jim'};#This will delete an entry from the hash.

Supprimer est une fonction intรฉgrรฉe de Perl. Ici, nous verrons un exemple d'attribution d'un hachage ร  un tableau.

@array=%newHash;
print "@array";

Remarque : chaque fois que vous imprimez un hachage ou lorsque vous stockez le hachage dans un tableau. L'ordre peut toujours diffรฉrer. Ce n'est pas toujours pareil.

Nous pouvons attribuer uniquement les clรฉs ou les valeurs d'un hachage ร  un tableau.

@arraykeys= keys(%newHash);
@arrayvalues=values(%newHash);
print "@arraykeys\n";
print "@arrayvalues\n";    # \n to print new line.		

Pour supprimer toutes les entrรฉes du hachage, nous pouvons directement attribuer le hachage ร  null.

%newHash=();# Cela redรฉfinira le hachage sans entrรฉes.

Dรฉclarations conditionnelles Perl

Nous pouvons utiliser des instructions conditionnelles en Perl. Alors, que sont les instructions conditionnelles ? Les instructions conditionnelles sont celles dans lesquelles vous vรฉrifiez rรฉellement que certaines circonstances sont satisfaites dans votre code.

Pensez ร  un exemple : vous achetez des fruits et vous n'aimez pas que le prix dรฉpasse 100 dollars. La rรจgle ici est donc de 100 dollars.

Perl prend en charge deux types d'instructions conditionnelles ; ils le sont si et moins.

Perl Si

Si le bloc de code sera exรฉcutรฉ, lorsque la condition est vraie.

Dรฉclarations conditionnelles Perl

my $a=5;
if($a==5)
{
   print "The value is $a";
}

Sortie :

5

Perl si sinon

Cela semble bon. Pensons ร  une situation oรน $a n'est pas 5.

my $a=10;
if($a==5)
{
    print "The values is $a ---PASS";
}
else
{
    print "The value is $a ---FAIL";
}

Sortie :

La valeur est 10 โ€”FAIL

De cette faรงon, nous ne pouvons contrรดler quโ€™une seule condition ร  la fois. Est-ce une limitation ? Non, vous pouvez รฉgalement contrรดler diverses conditions en utilisant ifโ€ฆ elsifโ€ฆ else.

Perl Sinon si

my $a=5;
if($a==6)
{
    print "Executed If block -- The value is $a";
}
elsif($a==5)
{
    print "Executed elsif block --The value is $a";
}
else
{
    print "Executed else block โ€“ The value is $a";
}

Sortie :

Bloc elsif exรฉcutรฉ โ€“ La valeur est 5

Dans le cas ci-dessus, le bloc elsif sera exรฉcutรฉ car $a est รฉgal ร  5.

Il peut y avoir des situations dans lesquelles les blocs de code if et elsif รฉchoueront. Dans ce scรฉnario, le bloc de code else sera exรฉcutรฉ. Vous pouvez en fait รฉliminer la vรฉrification du code else si vous n'aimez pas l'inclure.

Perl imbriquรฉ si

Dans ce cas, vous pouvez utiliser le bloc de code if dans un autre bloc de code if.

my $a=11; #Change values to 11,2,5 and observe output
if($a<10){
  print "Inside 1st if block";
        if($a<5){
                print "Inside 2nd if block --- The value is $a";
        }
        else{
                print " Inside 2nd else block --- The value is $a";
        }
	}
	else{
        	print "Inside 1st else block โ€“ The value is $a";
    }

Sortie :

ร€ lโ€™intรฉrieur du 1er bloc else โ€“ La valeur est 11

Exรฉcutez le mรชme code en modifiant la valeur de $a ; vous pouvez dรฉcouvrir le reste.

Perl Sauf si

Vous avez dรฉjร  une idรฉe de ce qui se passe (si la condition est vraie, le bloc de code sera exรฉcutรฉ). Sauf si est opposรฉ ร  si, sauf si le bloc de code sera exรฉcutรฉ si la condition est fausse.

my $a=5;
unless($a==5)
{
   print "Inside the unless block --- The value is $a";
}
else
{
   print "Inside else block--- The value is $a";
}

Sortie :

ร€ lโ€™intรฉrieur du 1er bloc else โ€“ La valeur est 5

Devinez quel sera le rรฉsultat. Tu as raison!!!!!. La sortie sera lโ€™instruction print du bloc else. En raison de la condition sauf si le bloc de code est vrai, rappelez-vous que le bloc sauf si le bloc sera exรฉcutรฉ uniquement si la condition est fausse. Changez la valeur de $a et exรฉcutez le code, vous verrez la diffรฉrence.

Perl Utilisation de if

$a= " This is Perl";
if($a eq "SASSDSS"){
print "Inside If Block";
}
else
{
print "Inside else block"
}

Sortie :

ร€ l'intรฉrieur du bloc else

Utiliser ร  moins que

$a= " This is Perl";
unless($a eq "SASSDSS"){
print "Inside unless Block";
}
else
{
print "Inside else block"
}

Sortie :

ร€ l'intรฉrieur sauf si bloquer

Boucles Perl โ€“ Structures de contrรดle

Perl prend en charge des structures de contrรดle similaires ร  d'autres langages de programmation. Perl prend en charge quatre types de structures de contrรดle pour, foreach, while et jusqu'ร . Nous utilisons ces instructions pour exรฉcuter du code ร  plusieurs reprises.

Pour la boucle Perl

Car le bloc de code sโ€™exรฉcutera jusquโ€™ร  ce que la condition soit satisfaite. Prenons un exemple de la faรงon dont Perl boucle un tableau.

my @array=(1..10);
for(my $count=0;$count<10;$count++)
{
    print "The array index $count value is $array[$count]";
    print "\n";
}

Sortie :

La valeur de l'indice 0 du tableau est 1

La valeur de l'indice 1 du tableau est 2

La valeur de l'indice 2 du tableau est 3

La valeur de l'indice 3 du tableau est 4

La valeur de l'indice 4 du tableau est 5

La valeur de l'indice 5 du tableau est 6

La valeur de l'indice 6 du tableau est 7

La valeur de l'indice 7 du tableau est 8

La valeur de l'indice 8 du tableau est 9

La valeur de l'indice 9 du tableau est 10

Ici, dans l'expression for (), de nombreuses instructions sont incluses. Il y a une signification pour chacun d'eux.

pour (initialisation ; condition ; incrรฉmentation)

Voici une autre faรงon d'utiliser for.

for(1..10)
{
    print "$_ n";
    print "\n";
}

Sortie :

1n

2n

3n

4n

5n

6n

7n

8n

9n

10n

Perl pour chaque

L'instruction for each peut รชtre utilisรฉe de la mรชme maniรจre que for ; la principale diffรฉrence est que nous n'avons aucune vรฉrification de condition ni incrรฉmentation.

Prenons le mรชme exemple avec foreach perl.

my @array=(1..10);
foreach my $value (@array)
{  
	print " The value is $value\n";
}

Sortie :

La valeur est 1

La valeur est 2

La valeur est 3

La valeur est 4

La valeur est 5

La valeur est 6

La valeur est 7

La valeur est 8

La valeur est 9

La valeur est 10

Foreach prend chaque รฉlรฉment d'un tableau et attribue cette valeur ร  $var pour chaque itรฉration. Nous pouvons รฉgalement utiliser $_ pour la mรชme chose.

my @array=(1..10);
foreach(@array)
{
    print " The value is $_ \n"; # This is same as the above code.
}

Sortie :

La valeur est 1

La valeur est 2

La valeur est 3

La valeur est 4

La valeur est 5

La valeur est 6

La valeur est 7

La valeur est 8

La valeur est 9

La valeur est 10

Cela semble bon pour accรฉder aux tableaux. Qu'en est-il des hachages, comment pouvons-nous obtenir des clรฉs de hachage et des valeurs en utilisant foreach ?

Nous pouvons utiliser foreach pour accรฉder aux clรฉs et aux valeurs du hachage en le bouclant.

Pour la boucle en Perl

my %hash=( 'Tom' => 23, 'Jerry' => 24, 'Mickey' => 25);
foreach my $key (keys %hash)
{
print "$key \n";
}

Sortie :

Mickey

Tom

Jerry

Vous vous demandez peut-รชtre pourquoi nous avons utilisรฉ des clรฉs dans foreach(). Keys est une fonction intรฉgrรฉe de Perl oรน nous pouvons accรฉder rapidement aux clรฉs du hachage. Et les valeurs ? Nous pouvons utiliser la fonction de valeurs pour accรฉder aux valeurs du hachage.

my %hash=( 'Tom' => 23, 'Jerry' => 24, 'Mickey' => 25);
foreach my $value(values %hash) # This will push each value of the key to $value
{
	 print " the value is $value \n";
}

Sortie :

la valeur est 24

la valeur est 23

la valeur est 25

Perl tandis que

La boucle Perl While est une structure de contrรดle, dans laquelle le bloc de code sera exรฉcutรฉ jusqu'ร  ce que la condition soit vraie.

Le bloc de code ne se terminera que si la condition est fausse.

Prenons un exemple pour la boucle Perl While.

Boucle while en Perl

Voici un problรจme qui nรฉcessitera une saisie de la part de l'utilisateur et ne se terminera pas avant le numรฉro fourni comme ยซ 7 ยป.

#!/usr/bin/perl
$guru99 = 0;
$luckynum = 7;
print "Guess a Number Between 1 and 10\n";
$guru99 = <STDIN>;
while ($guru99 != $luckynum)
{
	print "Guess a Number Between 1 and 10 \n ";
	$guru99 = <STDIN>;
}
print "You guessed the lucky number 7"

Sortie :

Devinez un nombre entre 1 et 10

9

Devinez un nombre entre 1 et 10

5

Devinez un nombre entre 1 et 10

7

Vous avez devinรฉ le chiffre porte-bonheur 7

Dans l'exemple ci-dessus, la condition while ne sera pas vraie si nous saisissons une entrรฉe autre que ยซ 7 ยป.

Si vous voyez comment while fonctionne ici, le bloc de code ne s'exรฉcutera que si la condition dans while est vraie.

Perl faire pendant ce temps

La boucle Do while s'exรฉcutera au moins une fois mรชme si la condition dans la section while est fausse.

Prenons le mรชme exemple en utilisant do while.

$guru99 = 10;
 do {
 print "$guru99 \n";
 $guru99--;
 } 
 while ($guru99 >= 1);
 print "Now value is less than 1";

Sortie :

10

9

8

7

6

5

4

3

2

1

Maintenant, la valeur est infรฉrieure ร  1

Perl jusqu'ร 

Le bloc de code Jusqu'ร  ce que soit similaire ร  sauf dans une instruction conditionnelle. Ici, le bloc de code ne s'exรฉcutera que si la condition du bloc jusqu'ร  ce qu'elle soit fausse.

Prenons le mรชme exemple que nous avons utilisรฉ dans le cas d'un certain temps.

Voici un problรจme qui nรฉcessitera une saisie de la part de l'utilisateur et ne se terminera que lorsque le nom sera fourni autre que ยซ sai ยป.

print "Enter any name \n";
 my $name=<STDIN>;
 chomp($name);
 until($name ne 'sai')
 {
    print "Enter any name \n";
    $name=<STDIN>;
    chomp($name);
 }

Sortie :

Entrez n'importe quel nom sai

Perl faire jusqu'ร  ce que :

Do Until ne peut รชtre utilisรฉ que lorsque nous avons besoin qu'une condition soit fausse, et elle doit รชtre exรฉcutรฉe au moins une fois.

print "Enter any name \n";
 my $name=<STDIN>;
 chomp($name);
 do
 {
     print "Enter any name \n";
     $name=<STDIN>;
    chomp($name);
 }until($name ne 'sai');

Sortie :

Entrez nโ€™importe quel nom Howard

Entrez nโ€™importe quel nom Sheldon

Entrez n'importe quel nom sai

Exรฉcutez des exemples de codes while, do-while, Until et do-until pour voir la diffรฉrence.

Perl Operator

Qu'est-ce que le Operator?

OperaLes indicateurs en langage informatique indiquent une action qui peut รชtre effectuรฉe sur un ensemble de variables ou de valeurs que l'ordinateur peut comprendre. Perl a incorporรฉ la plupart des Operaopรฉrateurs du langage C. Perl possรจde de nombreux opรฉrateurs par rapport aux autres langages de programmation. OperaLes opรฉrateurs sont classรฉs en opรฉrateurs arithmรฉtiques, logiques, relationnels et d'affectation.

Arithmรฉtique Operateurs :

Les opรฉrateurs arithmรฉtiques sont ceux qui peuvent รชtre utilisรฉs pour effectuer certaines opรฉrations mathรฉmatiques de base. Ces opรฉrateurs arithmรฉtiques sont des opรฉrateurs binaires oรน nous avons besoin de deux arguments pour effectuer une opรฉration de base. Nous pouvons รฉgalement utiliser des opรฉrateurs unaires pour d'autres opรฉrations de base ; vous pouvez voir la diffรฉrence dans les exemples ci-dessous.

Opรฉrateur Description Exemple

+

Opรฉration d'addition utilisรฉe pour ajouter deux valeurs ou variables

dรฉtenir des valeurs

$x=5+6 ; # ou

$y=6 ;

$z=$x+$y;

-

Opรฉrateur de soustraction utilisรฉ pour soustraire deux valeurs ou variables contenant des valeurs

$x=6-5 ; # ou

$y=6 ;

$z=$x-$y ;

*

Opรฉrateur de multiplication utilisรฉ pour multiplier deux valeurs ou variables contenant des valeurs

$x=6*5 ; # ou

$y=6 ;

$z=$x*$y;

/

Opรฉrateur de division utilisรฉ pour diviser deux valeurs ou variables contenant des valeurs

$x=36/6 ; # ou

$y=6 ;

$z=$x/$y;

**

L'opรฉrateur exponentiel utilisรฉ pour fournir l'exposant et obtenir la valeur.

Ex : 22 = 43 = 27

$x=5**5 ; # ou

$x=4 ;

$y=2 ;

$z=$x**$y;

%

Opรฉrateur de module utilisรฉ pour obtenir le rappel lors de la division de deux valeurs ou variables contenant des valeurs

$x=5%2 ; # ou

$x=10 ;

$y=2 ;

$z=$x % $y;

++

Opรฉrateur d'addition unaire pour incrรฉmenter la valeur d'une variable de 1

$x=5 ;

$x++ ;

Or

++$x;

-

Opรฉrateur de soustraction unaire pour dรฉcrรฉmenter la valeur d'une variable de 1

$x=5 ;

$x- ; # post dรฉcrรฉmentation

Or

โ€“$x;# prรฉ-dรฉcrรฉmentation

Exemple pour effectuer toutes les opรฉrations ci-dessus.

my $x=10;
my $y=2;
my $z;
$z=$x+$y;
print ("Add of $x and $y is $z \n");
$z=$x-$y;
print ("Sub of $x and $y is $z \n");
$z=$x*$y;
print ("Mul of $x and $y is $z \n");
$z=$x/$y;
print ("Div of $x and $y is $z \n");
$z=$x**$y;
print ("Exp of $x and $y is $z \n");
$z=$x%$y;
print ("Mod of $x and $y is $z \n");

Sortie :

La somme de 10 et 2 fait 12

Le sous de 10 et 2 est 8

Mul de 10 et 2 est 20

Div de 10 et 2 est 5

L'exp de 10 et 2 est de 100

Le mod de 10 et 2 est 0

Affectation Operateurs :

Les opรฉrateurs d'affectation attribuent simplement des valeurs aux variables, mais il y a encore une chose dont nous devons nous rappeler ici : les opรฉrateurs d'affectation effectueront รฉgalement des opรฉrations arithmรฉtiques et attribueront la nouvelle valeur ร  la mรชme variable sur laquelle l'opรฉration est effectuรฉe.

Opรฉrateur Description Exemple

+=

Opรฉrateur d'addition utilisรฉ pour ajouter et attribuer la valeur ร  la mรชme variable

$x=4 ;

$x+=10 ;

-=

Opรฉrateur de soustraction utilisรฉ pour soustraire et attribuer la valeur ร  la mรชme variable

$x=4 ;

$x-=10 ;

*=

Opรฉrateur de multiplication utilisรฉ pour ajouter et attribuer la valeur ร  la mรชme variable

$x=4 ;

$x*=10 ;

/=

Opรฉrateur de division utilisรฉ pour diviser et attribuer la valeur ร  la mรชme variable

$x=4 ;

$x/=10 ;

** =

Opรฉrateur exponentiel utilisรฉ pour obtenir l'exposant et attribuer la valeur ร  la mรชme variable

$x=4 ;

$x**=10 ;

%=

Opรฉrateur de module utilisรฉ pour obtenir un rappel lors de la division et attribuer la valeur ร  la mรชme variable

$x=10 ;

$x%=4 ;

Exemple pour effectuer toutes les opรฉrations ci-dessus.

my $x=10;
$x+=5;
print("Add = $x\n");
$x-=5;
print("Sub= $x\n");
$x*=5;
print("Mul = $x\n");
$x/=5;
print("Div = $x\n");

Sortie :

Ajouter = 15

Sous = 10

Mul = 50

Div = 10

Logique et Relationnel Operateurs :

Perl utilise des opรฉrateurs logiques pour comparer des nombres et des chaรฎnes. La plupart du temps, les opรฉrateurs logiques sont utilisรฉs dans les instructions conditionnelles.

Logique et Relationnel Operators en Perl

Logique et Relationnel Operators en Perl

Opรฉrateur Description

==ou รฉquation

OperaTor utilisรฉ pour vรฉrifier si les deux variables sont รฉgales

!=Ou ne

OperaTor utilisรฉ pour vรฉrifier si les deux variables ne sont pas รฉgales

> ou GT

OperaTor utilisรฉ pour vรฉrifier si

A est supรฉrieur ร  B

<ou lt

OperaTor utilisรฉ pour vรฉrifier si

A est infรฉrieur ร  B

>=ou ge

OperaTor utilisรฉ pour vรฉrifier si

A est supรฉrieur ou รฉgal ร  B

<=ou le

OperaTor utilisรฉ pour vรฉrifier si

A est infรฉrieur ou รฉgal ร  B

|| ou ou

OperaTor utilisรฉ pour vรฉrifier que A ou B dรฉtient la valeur

&&ou et

OperaTor utilisรฉ pour vรฉrifier que A et B dรฉtiennent la valeur

Prenons un exemple oรน nous pouvons expliquer tous les scรฉnarios.

my $x=5;
my $y=5;
if($x == $y){
print ("True -- equal $x and $y \n");
}
else{
print ("False -- not equal $x and $y\n");
}
$x=6;
$y=7;
if($x != $y){
print ("True -- not equal $x and $y\n");
}
else{
print ("False -- equal $x and $y\n");
}
if($y > $x){
print ("True -- $y greater than $x\n");
}
else{
print ("False -- $y greater than $x\n");
}
if($x < $y){
print ("True -- $x less than $y\n");
}
else{
print ("False -- $x less than $y\n");
}
if($x <= $y){
print ("True -- $x less than $y\n");
}
else{
print ("False -- $x less than $y\n");
}
if($y >= $x){
print ("True -- $y greater than $x\n");
}
else{
print ("False -- $y greater than $x\n");
}

Sortie :

Vrai โ€” รฉgal ร  5 โ€‹โ€‹et 5

Vrai โ€” diffรฉrent de 6 et 7

Vrai - 7 supรฉrieur ร  6

Vrai - 6 de moins que 7

Vrai - 6 de moins que 7

Vrai - 7 supรฉrieur ร  6

Vous pouvez voir des exemples dโ€™opรฉrateurs logiques dans les sections suivantes.

Variables spรฉciales Perl

Que sont les variables spรฉciales Perl ?

Les variables spรฉciales en Perl sont celles qui ont une signification prรฉdรฉfinie. Ces variables sont indiquรฉes par des symboles de nom rรฉel ou de ponctuation. Nous avons une variable spรฉciale pour toutes les variables prises en charge par Perl, telles que les variables spรฉciales scalaires, les variables spรฉciales de tableau, les variables spรฉciales de hachage. La plupart des variables spรฉciales que nous utilisons sont des scalaires.

Lorsque nous voulons utiliser la variable spรฉciale avec son nom, nous devons alors charger un module Perl ยซ utiliser l'anglais ยป pour dire explicitement ร  l'interprรฉteur Perl que nous allons utiliser des variables spรฉciales en utilisant son nom.

Variables spรฉciales scalaires

Variable Description

$_$ARG

Il s'agit de la variable par dรฉfaut qui stocke les valeurs actuelles.

0 $ ou $PROGRAM_NAME

Stocke le nom de fichier du script Perl.

$/

Le sรฉparateur d'enregistrement d'entrรฉe, il a une valeur par dรฉfaut de '\n' qui est un caractรจre de nouvelle ligne

$.

Contient le numรฉro de ligne actuel du fichier en cours de lecture

$,

Sรฉparateur de champ de sortie, il est principalement utilisรฉ par l'instruction print(). Par dรฉfaut, la valeur de ceci est dรฉfinie sur 0, nous pouvons modifier la valeur de cette variable.

$\

Sรฉparateur d'enregistrement en sortie, la valeur de cette variable sera vide ; nous pouvons lui attribuer n'importe quelle valeur, qui sera utilisรฉe par l'instruction print() lors de l'impression de la sortie.

$#

Cette variable est utilisรฉe pour le format de sortie lors de l'impression des nombres.

$%$FORMAT_PAGE_NUMBER

Contiendra le numรฉro de page actuel du fichier lu.

$=$FORMAT_LINES_PER_PAGE

Contiendra la longueur actuelle de la page du fichier lu.

$-$FORMAT_LINES_LEFT

Contient la valeur du nombre de lignes restant ร  imprimer ร  partir de la page.

$~$FORMAT_NAME

Nom du format : contient le format de la sortie actuellement sรฉlectionnรฉe, par dรฉfaut le nom du descripteur de fichier.

$^$FORMAT_TOP_NAME

Contient la valeur du format d'en-tรชte du gestionnaire de fichiers, par dรฉfaut la valeur sera _TOP suivi du nom du descripteur de fichier.

$|$OUTPUT_AUTOFLUSH

La valeur par dรฉfaut est zรฉro ; ceci est utilisรฉ pour vider le tampon de sortie aprรจs chaque write() ou print().

$$

Contiendra le numรฉro du processus en cours dโ€™exรฉcution de lโ€™interprรฉteur Perl.

$?

Code d'รฉtat : Pipe et appel systรจme. L'รฉtat de retour de la commande exรฉcutรฉe.

MATCH $&$

Utilisรฉ dans les expressions rรฉguliรจres, cela contiendra une chaรฎne de la derniรจre correspondance de modรจle rรฉussie.

$`$PREMATCH

Utilisรฉ dans les expressions rรฉguliรจres, cela contiendra la chaรฎne prรฉcรฉdรฉe de la derniรจre correspondance de modรจle rรฉussie.

$'$APRรˆS LE MATCH

Utilisรฉ dans les expressions rรฉguliรจres, cela contiendra une chaรฎne suivie de la derniรจre correspondance de modรจle rรฉussie.

$+$LAST_PAREN_MATCH

Contient la chaรฎne du dernier crochet correspondant ร  la derniรจre recherche de modรจle.

$

1$, 2$, 3$โ€ฆ. Contient les valeurs du modรจle correspondant dans lโ€™ordre.

$[

Premier index : Array, une sous-chaรฎne.

$]

Une version de Perl.

$ ยป

Le sรฉparateur utilisรฉ pour les รฉlรฉments de la liste, par dรฉfaut, est un espace.

$;

Sรฉparateur d'indice utilisรฉ dans les tableaux multidimensionnels

$!

Dans un contexte numรฉrique, imprime le numรฉro d'erreur. Dans un contexte de chaรฎne, imprimez l'erreur.

$@

Contiendra les informations d'erreur de syntaxe, utilisรฉes lorsque eval() est utilisรฉ.

$<

Contient le vรฉritable UID (identifiant utilisateur) du processus exรฉcutant le script.

$>

Contient lโ€™UID effectif du processus exรฉcutant le script.

$(

Contient le vรฉritable GID (identifiant de groupe) du processus exรฉcutant le script.

$)

Contient le GID effectif du processus exรฉcutant le script.

$^D$Dร‰BOGAGE

Contient la valeur actuelle des indicateurs de dรฉbogage.

$^C

Contient la valeur actuelle de l'indicateur lorsque le commutateur de ligne de commande โ€“c est utilisรฉ.

$^F

Le descripteur de fichier systรจme maximum, par dรฉfaut, est dรฉfini sur 2

$^I$INPLACE_EDIT

Contient la valeur du commutateur de ligne de commande โ€“i.

$^M

Un pool de mรฉmoire spรฉcial peut รชtre utilisรฉ lorsque le script Perl s'arrรชte avec une erreur de mรฉmoire insuffisante.

$^O$NOMOSI

OperaLes informations systรจme sont stockรฉes. ยซ Linux ยป pour les systรจmes Linux, ยซ mswin32 ยป pour Windows .

$^T$TEMPS DE BASE

L'heure ร  laquelle les scripts s'exรฉcutent en secondes.

$^W$AVERTISSEMENT

La valeur actuelle du commutateur de ligne de commande โ€“w. Interrupteur d'avertissement.

$ARGV

Nom du fichier actuel, lorsque <> est utilisรฉ.

Variables spรฉciales du tableau :

Variable Description

@INC

Contient une liste de chemins oรน les modules ou scripts de la bibliothรจque Perl peuvent รชtre consultรฉs lors de l'exรฉcution du script actuel. Ce @INC est utilisรฉ par les instructions use et require pour examiner ces chemins pour les modules de bibliothรจque.

@ARGV

Stocke les arguments de ligne de commande transmis.

@_

Utilisรฉ dans les sous-programmes, lors de la transmission des paramรจtres aux sous-programmes.

@F

Il s'agit du tableau dans lequel les lignes d'entrรฉe sont stockรฉes lors de la division automatique โ€“a (le commutateur de ligne de commande est utilisรฉ).

Variables spรฉciales de hachage :

Variable Description

%INC.

Le nom du fichier sera les clรฉs ; les valeurs seront le chemin dโ€™accรจs ร  ces fichiers. Utilisรฉ par do, use et require.

%ENV

Variables environnementales du systรจme.

%SIG

Signals gestionnaire.

Expression rรฉguliรจre Perl

Quโ€™est-ce que lโ€™expression rรฉguliรจre ?

L'expression rรฉguliรจre Perl est suffisamment puissante pour faire correspondre les modรจles de chaรฎnes au sein d'une instruction ou d'un groupe d'instructions. Les expressions rรฉguliรจres sont principalement utilisรฉes dans l'analyse de texte, la correspondance de modรจles et bien plus encore en fonction des besoins. Nous avons certains opรฉrateurs, qui sont spรฉcialement utilisรฉs par la liaison de modรจles d'expressions rรฉguliรจres =~ et !~, ce sont des opรฉrateurs de test et d'affectation.

Expression rรฉguliรจre Operajeudi

Expression rรฉguliรจre Operators en Perl

Expression rรฉguliรจre Operators en Perl

  • Correspondance Perl โ€” m//
  • Substitut Perl โ€“ s///
  • Translittรฉration Perl โ€“ tr///

Avant d'aller plus loin, nous devons connaรฎtre quelques choses sur les expressions rรฉguliรจres ; il y a certaines choses comme les mรฉta-caractรจres, les caractรจres gรฉnรฉriques dans la syntaxe Perl Regex.

Carboniser Sens

\

Spรฉcial ou devis

*

Faites correspondre 0 caractรจre ou plus

+

Faites correspondre 1 caractรจre ou plus

?

Faire correspondre 0 ou 1 caractรจre

|

Peut รชtre utilisรฉ pour correspondre ร  des modรจles alternatifs

()

Utilisรฉ pour stocker le motif correspondant

[]

Un ensemble de caractรจres peut รชtre transmis. Spรฉcifiquement utilisรฉ pour les chiffres et les alphabets.

{}

Utilisรฉ pour fournir le nombre de fois oรน le match peut รชtre effectuรฉ.

^

Dรฉbut de chaรฎne

$

Fin de chaรฎne

\w

Utilisรฉ pour correspondre ร  un seul caractรจre ou mot pouvant รชtre alphanumรฉrique, y compris ยซ _ ยป

\W

Correspond ร  tout ce qui n'est pas alphanumรฉrique

\s

Utilisรฉ pour faire correspondre les espaces

\S

Faire correspondre n'importe quoi d'autre que des espaces

\d

Faites correspondre les numรฉros. Pas de valeurs dรฉcimales ni de valeurs nรฉgatives

\D

Faites correspondre autre chose que des chiffres.

\t

Espace de tabulation de correspondance

\n

Faire correspondre la nouvelle ligne

Les รฉlรฉments ci-dessus reprรฉsentent l'ensemble de caractรจres qui peuvent รชtre utilisรฉs lors de la correspondance de modรจles.

Voyons quelques exemples.

Considรฉrons une situation dans laquelle l'utilisateur fournit une entrรฉe lors de l'exรฉcution du script et nous souhaitons vรฉrifier si l'utilisateur a entrรฉ un nom en entrรฉe ou non. Nous devons รฉcrire une syntaxe d'expression rรฉguliรจre pour extraire votre nom et l'imprimer.

my $userinput="Guru99 Rocks";
if($userinput=~m/.*(Guru99).*/)
{
	print "Found Pattern";
}
else
{
	print "unable to find the pattern";
}

Sortie :

Modรจle trouvรฉ

Ici, nous avons รฉcrit l'expression rรฉguliรจre sous la forme /.*(Guru99).*/.* qui correspond ร  tous les caractรจres d'une chaรฎne. UN '.' en Perl, la correspondance regex fait rรฉfรฉrence ร  n'importe quel caractรจre, y compris l'espace.

Voyons comment exactement nous pouvons construire une Regex.

Prenons un exemple d'une chaรฎne de plusieurs mots et chiffres et de symboles spรฉciaux comme celui-ci ยซ Bonjour ร  tous, voici mon numรฉro : +91-99298373639 ยป ;

Regex : /^\w+\s\w+\s\w+\s\w+\s\w+\s\w+\:\+\d+\-\d+/i

Espace mot espace mot espace mot espace mot espace mot espace mot caractรจre spรฉcial : espace caractรจre spรฉcial+chiffres caractรจre spรฉcial โ€“chiffres.

Correspondance Perl Operajeudi

Les opรฉrateurs de correspondance sont utilisรฉs pour faire correspondre une chaรฎne dans une instruction ou dans une variable.

my $var="Hello this is perl";
if($var=~m/perl/)
{
	print "true"; 
} 
else
{
	print "False"; 
}

Sortie :

oui

Ce petit code affichera ยซ vrai ยป, car la correspondance de modรจle Perl identifie la chaรฎne dans une variable. Fondamentalement, Perl recherche le texte fourni dans // tout au long de la chaรฎne, mรชme s'il le trouve ร  un seul endroit, il renverra ยซ vrai ยป. Le modรจle peut รชtre n'importe oรน dans la variable. Nous pouvons essayer de remplacer =~ par !~ pour voir la diffรฉrence entre ces deux opรฉrateurs.

Substitution Perl Operator

Cet opรฉrateur peut รชtre utilisรฉ pour rechercher et remplacer n'importe quel caractรจre par null ou un autre caractรจre.

my $a="Hello how are you";
$a=~s/hello/cello/gi;
print $a;

Sortie :

violoncelle, comment vas-tu

Remarque : Nous pouvons รฉgalement utiliser n'importe quelle chaรฎne de correspondance de modรจle comme nous l'avons fait prรฉcรฉdemment dans cet opรฉrateur de substitution. Ici, nous avons utilisรฉ 'gi', g-globalement, i-ignorer la casse.

Traduction Perl Operator

Ceci est similaire ร  Substitution, mais il n'utilise aucune expression rรฉguliรจre Perl, nous pouvons plutรดt transmettre directement la valeur ou un mot que nous voulons remplacer.

my $a="Hello how are you";
$a=~tr/hello/cello/;
print $a;

Sortie :

Bonjour vache, es-tu

E/S de fichier Perl

Perl a รฉtรฉ conรงu pour manipuler efficacement les fichiers et les opรฉrations d'E/S. Le principal avantage de Perl rรฉside dans l'analyse et la gestion des fichiers. Il existe de nombreuses fonctions et opรฉrateurs intรฉgrรฉs utilisรฉs lors de la gestion des fichiers en Perl.

Fondamentalement, les opรฉrations sur les fichiers effectuรฉes avec Perl sont effectuรฉes ร  l'aide de FILEHANDLE. Nous devons dรฉfinir ce FILEHANDLE lors de l'ouverture d'un fichier en lecture ou en รฉcriture.

Dans ce didacticiel de script Perl, vous apprendrez-

Perl Ouvrir un fichier

Nous pouvons ouvrir un fichier en utilisant la fonction open() disponible en Perl.

open(FILEHANDLE, "filename or complete path of the file");

Maintenant quโ€™on a ouvert un dossier, maintenant une question se pose. Est-ce pour lire ou รฉcrire ?

Fichier de lecture Perl et fichier d'รฉcriture Perl

Perl possรจde certains modes qui doivent รชtre utilisรฉs pour lire, รฉcrire ou ajouter un fichier.

Read โ€“ open(my $fh,"<filename or complete path of the file"); 
Write โ€“ open(my $fh,">filename or complete path of the file");
Append โ€“ open(my $fh,">>filename or complete path of the file");

Quelques exemples de lecture d'un fichier :

Lecture d'un fichier en Perl

Considรฉrons que nous avons un fichier Perl portant le nom file.txt et contenant quelques lignes de texte. Nous devons ouvrir ce fichier et l'imprimer.

open(FH,"<file.txt"); 
while(<FH>)    # Looping the file contents using the FH as a filehandle. 
{
	print "$_";
}
close FH;

or

open(FH,"<file.txt"); 
my @content=<FH>; # specifying the input of the array is FH.
foreach(@content)
{
	print "$_";
}
close FH;

Cela imprimera le contenu du fichier sur lโ€™รฉcran de sortie.

Maintenant, nous allons รฉcrire un programme pour crรฉer et รฉcrire des donnรฉes dans un fichier Perl.

ร‰crire un fichier en Perl

open(FH,">test.txt");
my $var=<>;
print FH $var;
close FH;

Cela รฉcrira l'entrรฉe fournie pendant l'exรฉcution et crรฉera un fichier test.txt qui contiendra l'entrรฉe.

La mรฉthode ci-dessus essaiera toujours de crรฉer un fichier nommรฉ test.txt et รฉcrit l'entrรฉe dans le fichier ; nous รฉcrirons la mรชme chose pour ajouter le fichier.

Opรฉration d'ajout de fichier en Perl

open(FH,">>test.txt");
my $var=<>;
print FH $var;
close FH;
Modes Description

<

Lire

+<

Lit et รฉcrit

>

Crรฉe, รฉcrit et tronque

+>

Lire, รฉcrire, crรฉer et tronquer

>>

ร‰crit, ajoute et crรฉe

+>>

Lire, รฉcrire, ajouter et crรฉer

Maintenant, nous devons voir comment lire, รฉcrire et ajouter des fichiers ร  l'aide d'exemples de base.

Nous verrons quelques exemples supplรฉmentaires et d'autres fonctions qui aident ร  mieux comprendre les fichiers.

Perl Tell

Cette mรฉthode renverra la position actuelle de FILEHANDLER en octets si elle est spรฉcifiรฉe, sinon elle considรฉrera la derniรจre ligne comme position.

open(FH, "test.pl");
while(<FH>)
{
	$a=tell FH;
	print "$a";
}

Recherche Perl

La fonction Seek est similaire ร  lโ€™appel systรจme fseek. Cette mรฉthode est utilisรฉe pour positionner le pointeur de fichier vers un emplacement spรฉcifique en spรฉcifiant les octets suivis soit du dรฉbut du pointeur de fichier, soit de la fin du pointeur de fichier.

seek FH, bytes, WHENCE;

WHENCE est la position du pointeur de fichier pour dรฉmarrer. Zero le dรฉfinira depuis le dรฉbut du fichier.

Exemple : laissez input.txt contenir des donnรฉes telles que "Bonjour, c'est mon monde".

open FH, '+<','input.txt';
seek FH, 5, 0;    # This will start reading data after 5 bytes.
$/ = undef;
$out = <FH>;
print $out;
close FH;

Sortie :

Ceci est mon univers

Perl Dissocier

Dissocier est utilisรฉ pour supprimer le fichier.

unlink("filename or complete file path");

Gestion des rรฉpertoires :

Nous pouvons รฉgalement gรฉrer des rรฉpertoires ร  travers lesquels nous pouvons gรฉrer plusieurs fichiers.

voyons comment ouvrir un rรฉpertoire. Nous pouvons utiliser les mรฉthodes opendir et readdir.

opendir(DIR,"C:\\Program Files\\"); #DIR is the directory handler.

while(readdir(DIR)) # loop through the output of readdir to print the directory contents.
{
   print "$_\n";
}
closedir(DIR); #used to close the directory handler.

or

opendir(DIR,"C:\\Program Files\\");
@content=readdir(DIR);
foreach(@content)
{
	print "$_\n";
}
closedir(DIR);

Cela imprimera tous les fichiers disponibles dans ce rรฉpertoire.

Tests de fichiers Perl et leur signification

-r

Pour vรฉrifier si le fichier/rรฉpertoire est lisible par l'utilisateur/groupe actuel

-w

Pour vรฉrifier si le fichier/rรฉpertoire est accessible en รฉcriture par l'utilisateur/groupe actuel

-x

Pour vรฉrifier si le fichier/rรฉpertoire est exรฉcutable par l'utilisateur/groupe actuel

-o

Pour vรฉrifier si le fichier/rรฉpertoire appartient ร  l'utilisateur actuel

-R

Pour vรฉrifier si le fichier/rรฉpertoire est lisible par cet utilisateur/groupe rรฉel

-W

Pour vรฉrifier si le fichier/rรฉpertoire est accessible en รฉcriture par cet utilisateur/groupe rรฉel

-X

Pour vรฉrifier si le fichier/rรฉpertoire est exรฉcutable par ce vรฉritable utilisateur/groupe

-O

Pour vรฉrifier si le fichier/rรฉpertoire appartient ร  cet utilisateur rรฉel

-e

Pour vรฉrifier si le nom du fichier/rรฉpertoire existe

-z

Pour vรฉrifier si le fichier existe et a une taille nulle (toujours faux pour les rรฉpertoires)

-f

Pour vรฉrifier si l'entrรฉe est un fichier brut

-d

Pour vรฉrifier si Entry est un rรฉpertoire

-l

Pour vรฉrifier si Entry est un lien symbolique

-S

Pour vรฉrifier si Entry est un socket

-p

Pour vรฉrifier si Entry est un tube nommรฉ (un ยซ FIFO ยป)

-b

Pour vรฉrifier si Entry est un fichier spรฉcial bloc (comme un disque montable)

-c

Pour vรฉrifier si Entry est un fichier spรฉcial de caractรจre (comme un pรฉriphรฉrique d'E/S)

-u

Pour vรฉrifier si le fichier ou le rรฉpertoire est setuid

-g

Pour vรฉrifier si le fichier ou le rรฉpertoire est setgid

-k

Pour vรฉrifier si le fichier ou le rรฉpertoire a le bit collant dรฉfini

-t

Le descripteur de fichier donnรฉ est un TTY (comme pour la fonction systรจme isatty(), les noms de fichiers ne peuvent pas รชtre testรฉs par ce test)

-T

Pour vรฉrifier si le fichier ressemble ร  un fichier ยซ texte ยป

-B

Pour vรฉrifier si le fichier ressemble ร  un fichier ยซ binaire ยป

-M

Pour vรฉrifier l'รขge de modification (mesurรฉ en jours) du fichier

-A

Pour vรฉrifier l'รขge d'accรจs (mesurรฉ en jours) du fichier

-C

Pour vรฉrifier l'รขge de modification de l'inode (mesurรฉ en jours) du fichier

Sous-programme Perl

Qu'est-ce que le sous-programme?

Sous-programmes sont similaires aux fonctions dโ€™autres langages de programmation. Nous avons dรฉjร  utilisรฉ certaines fonctions intรฉgrรฉes comme print, chomp, chop, etc. Nous pouvons รฉcrire nos propres sous-programmes en Perl. Ces sous-programmes peuvent รชtre รฉcrits n'importe oรน dans le programme ; il est prรฉfรฉrable de placer les sous-programmes soit au dรฉbut, soit ร  la fin du code.

Sous-programme en PERL

Exemple de sous-programmes

sub subroutine_name 
{
	Statementsโ€ฆ;    # this is how typical subroutines look like.
}

Maintenant que nous savons comment รฉcrire un sous-programme, comment y accรฉder ?

Nous devons accรฉder ou appeler un sous-programme en utilisant le nom du sous-programme prรฉfixรฉ par le symbole ยซ & ยป.

sub display
{
	print "this is a subroutine";
}
display();    # This is how we call a subroutine

Passer les paramรจtres Perl et les arguments Perl

Des sous-programmes ou des fonctions Perl sont รฉcrits pour y placer le code rรฉutilisable. La plupart du code rรฉutilisable nรฉcessite que des paramรจtres soient transmis au sous-programme. Ici, nous allons apprendre comment transmettre des arguments au sous-programme.

sub display
{		
	my $var=@_; # @_ is a special variable which stores the list of arguments passed.		
	print "$var is the value passed";		
}		
display(2,3,4);    #this is how we need to pass the arguments.

Sortie :

3 est la valeur transmise

@_ est une variable tableau spรฉciale qui stocke les arguments passรฉs aux sous-programmes.

Perl Shift

Nous pouvons รฉgalement utiliser le mot-clรฉ 'shift' qui dรฉplace un paramรจtre ร  la fois vers une variable ou $_[0],$_[1]โ€ฆ qui est un รฉlรฉment individuel du tableau @_

sub display
{		
my $var=shift;		
print "$var is passed";		
}		
display("hello");

Sortie :

bonjour c'est passรฉ

Les sous-programmes sont gรฉnรฉralement utilisรฉs dans la programmation orientรฉe objet et รฉgalement dans les endroits oรน vous pouvez placer davantage de code rรฉutilisable.

La fonctionnalitรฉ principale des sous-programmes est d'effectuer certaines tรขches et de renvoyer le rรฉsultat du code rรฉutilisable.

Tutoriel PERL pour dรฉbutants - Guide complet

Nous pouvons renvoyer une valeur du sous-programme en utilisant le mot-clรฉ return.

sub add
{
my $a=shift;
my $b=shift;
return($a+$b);
}
my $result=add(5,6);
print $result;

Sortie :

11

$result contiendra la valeur des $a et $b ajoutรฉs.

Nous pouvons รฉgalement transmettre des hachages et des tableaux directement au sous-programme.

sub hash
{
my %hash=@_;
print %hash;
}
%value= ( 1=>'a', 2=>'b');
&hash(%value);

Sortie :

1a2b

Nous pouvons รฉgalement renvoyer un hachage ou un tableau.

sub hashArray
{
my %hash=@_;
print "Inside Sub-routine";
print %hash;
return(%hash);
}
%hash=(1=>'a', 2=>'b');
my(@ret)=hashArray(%hash);
print "After Sub-routine call";
print @ret;

Sortie :

ร€ l'intรฉrieur du sous-programme 2b1aAprรจs l'appel du sous-programme 2b1a

Format Perl

Perl dispose d'un mรฉcanisme grรขce auquel nous pouvons gรฉnรฉrer des rapports. Grรขce ร  cette fonctionnalitรฉ, nous pouvons crรฉer des rapports exactement comme nous le souhaitons tout en les imprimant sur l'รฉcran de sortie ou dans un fichier. Un format simple peut รชtre รฉcrit ร  l'aide des fonctions printf ou sprintf disponibles en Perl.

printf "%05d\n", 30;

Cela inclura des zรฉros non significatifs devant le numรฉro 30, ce qui fera un nombre total de chiffres jusqu'ร  5. La mรชme chose peut รชtre utilisรฉe pour sprintf.

sprintf "%05d\n", 30; # This will print the same as printf.

En utilisant printf et sprintf, nous pouvons obtenir la plupart des formats Perl. Dans le cas des rapports, cela sera difficile ร  mettre en ล“uvre.

Format Perl

Exemple de rapport :

================================================== =========================
Nom Adresse ร‚ge Tรฉlรฉphone
================================================== =========================
Krishna Chennai 24 929309242
Shruthi Chennai 24 929309232

Ce qui prรฉcรจde est un exemple de rapport que nous devons imprimer de la mรชme maniรจre en Perl. Ceci peut รชtre rรฉalisรฉ en utilisant Perl printf et Perl sprintf. Il peut รชtre efficacement implรฉmentรฉ en utilisant le format.

Un format peut รชtre dรฉclarรฉ de la maniรจre ci-dessous.

format FORMATNAME=FORMATLIST.

Ici, nous utiliserons une mรฉthode d'รฉcriture particuliรจre pour imprimer les donnรฉes sur l'รฉcran de sortie ou dans le fichier.

Symbole Description

@

Utilisรฉ pour reprรฉsenter le dรฉbut du titulaire du champ

>

Alignement correct du texte

<

Alignement du texte ร  gauche

|

Alignement central

#

Numรฉrique si plusieurs # sont fournis. Suppose comme un commentaire si un seul # est fourni

.

Virgule

^

Le support de dรฉbut de champ peut รฉgalement รชtre utilisรฉ pour le multiligne et รฉgalement pour le retour ร  la ligne.

~

La ligne doit รชtre vide si la variable est vide

@*

Plusieurs lignes.

($name,$addr,$age,$phone)=("krishna","chennai","24","929309242"); 
write;
($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 
write; 
format STDOUT_TOP= 
=============================================================== 
NAME ADDRESS AGE PHONE 
===============================================================
 . 
format STDOUT= 
@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 
$name, $addr, $age, $phone 
.

Exรฉcutez le code pour voir le rรฉsultat.

Nous utilisons le symbole @ pour spรฉcifier le dรฉbut du titulaire du champ ou de la chaรฎne, '<' pour chaque caractรจre.

Nous utilisons STDOUT pour imprimer sur la sortie standard. Nous pouvons changer cela en gestionnaire de fichiers que nous utilisons pour รฉcrire des donnรฉes dans le fichier.

open(REPORT,">test.txt"); 
($name,$addr,$age,$phone)=("krishna","chennai","24","929309232"); 
write REPORT; 
($name,$addr,$age,$phone)=("shruthi","chennai","24","929309232"); 
write REPORT; 
format REPORT_TOP= 
=============================================================== 
NAME ADDRESS AGE PHONE 
===============================================================
 . 
format REPORT= 
@<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<< @<<< @<<<<<<<<<< 
$name, $addr, $age, $phone

Nous pouvons remplacer '<' par '>' ou '|' pour modifier l'alignement du texte.STDOUT_TOP est utilisรฉ pour concevoir l'en-tรชte du format.Nous pouvons รฉgalement utiliser la mรชme chose avec le gestionnaire de fichiers en utilisant FH_TOP (FH est le gestionnaire de fichiers).Cela affichera le format dans le fichier sur lequel nous travaillons sur.

Normes de codage Perl

Chaque programmeur aura sa propre faรงon d'รฉcrire le code en utilisant certaines normes ; ces normes doivent รชtre suffisamment familiรจres pour que d'autres programmeurs puissent comprendre et prendre en charge correctement le code.

Normes de codage en Perl

Normes de codage en Perl

Lโ€™รฉcriture de code est simple et facile. Le problรจme se pose lorsquโ€™il faut le maintenir ร  des stades ultรฉrieurs. Des directives et des normes de codage appropriรฉes doivent รชtre suivies lors de l'รฉcriture du code. Perl dรฉfinit รฉgalement certaines normes qui seront utiles aux programmeurs pour รฉcrire du code. Il est conseillรฉ de charger 'strict' et 'warnings module' lors de l'รฉcriture du code. Chacun de ces modules a sa propre importance. Strict nous fera dรฉclarer la variable avant de l'utiliser et nous dira รฉgalement si un mot nu est prรฉsent dans votre code. Le module d'avertissements peut รฉgalement รชtre utilisรฉ en passant l'option '-w' ร  l'interprรฉteur Perl dans shebang. Les avertissements s'imprimeront sur l'รฉcran de sortie.

#!/usr/bin/perl โ€“w

Vous trouverez ci-dessous quelques listes de normes.

  • Utilisez les modules ยซ strict ยป et ยซ avertissements ยป.
  • Supprimez la variable qui nโ€™est pas utilisรฉe.
  • Les noms de variables doivent รชtre comprรฉhensibles pour les autres utilisateurs. Ex : $name, @fileData etc.
  • La documentation est requise lors du codage d'un script.
  • Ne codez en dur aucune valeur, essayez plutรดt de les rรฉcupรฉrer dynamiquement ou demandez ร  l'utilisateur de les saisir pendant l'exรฉcution. (Chemin du fichier, noms de fichiers).
  • Maximisez la rรฉutilisation du code. Essayez de mettre le code rรฉutilisable dans des sous-programmes.
  • Cela signifie que les noms complets doivent รชtre donnรฉs pour les sous-programmes.
  • Les sous-programmes doivent รชtre รฉcrits avec les commentaires et la documentation appropriรฉs.
  • Initialisez toujours les variables.
  • Vรฉrifiez toujours les codes de retour pour les appels systรจme. L'ouverture d'un fichier peut se produire ou non, avoir un code retour ici affichera l'รฉtat d'erreur si le fichier n'existe pas.

    Ex : ouvert(FH,

  • Le sous-programme doit toujours renvoyer une valeur.
  • Ouvrez bouclรฉs dans la mรชme ligne.
  • BLOC ร  ligne unique peut รชtre placรฉ sur une seule ligne avec bouclรฉ.
  • Utilisez des รฉtiquettes pendant les BOUCLES, il serait facile de sortir de la boucle chaque fois que cela est nรฉcessaire.
  • Utilisez le trait de soulignement lorsque de longues phrases de mots sont รฉcrites sous forme de nom de variable ou de sous-programme.
  • Essayez d'utiliser une expression rรฉguliรจre simple lors du codage.

Exemple parfait avec les normes de codage :

#######################################################################
Program to read the file content
# Date: 22-2-2013
# Author : Guru99
########################################################################
#!/usr/bin/perl 
use strict;
use warnings; 
my $line;
open FR, "file.txt" || die("Cannot open the file $!");
while ($line=<FR>) 
{   
	print $line;
} # Looping file handler to print data

Gestion des erreurs Perl

Qu'est-ce qu'une exception ?

Une exception est un รฉvรฉnement qui se produit pendant l'exรฉcution du programme et qui suspendra ou terminera votre programme.

Gestion des erreurs

La gestion des erreurs est une gestion ร  laquelle chaque programmeur doit faire attention pendant la programmation. Perl fournit รฉgalement des techniques de gestion des erreurs avec lesquelles nous pouvons intercepter l'erreur et les gรฉrer en consรฉquence.

Gestion des erreurs en Perl

Gestion des erreurs en Perl

Il existe de nombreuses faรงons de vรฉrifier les erreurs dans le programme. Nous devons examiner les codes de retour de la fonction que nous utilisons. Si nous sommes capables de gรฉrer correctement ces codes de retour, la plupart des erreurs peuvent รชtre traitรฉes.

Qu'est-ce qui reviendra en cas d'appels systรจme ?

Dans le cas d'appels systรจme, l'รฉtat de retour sera stockรฉ dans deux variables spรฉciales $ ? Et $ !

$! โ€“ Cela dรฉtectera le numรฉro dโ€™erreur ou le numรฉro dโ€™erreur associรฉ au message dโ€™erreur.

$? โ€“ Cela contiendra la fonction return status system().

Utilisation de l'opรฉrateur Perl ou logique

Nous pouvons utiliser un opรฉrateur logique ou pour la gestion des erreurs lors de l'utilisation des appels systรจme.

Ex:

open(FH,"<test.txt");

Cela ouvrira le fichier en mode lecture si le fichier existe.

Que faire si le fichier est manquant ?

open(FH,"<test.txt") or die("File not exists $!"); # This will perl exit the program if the file not exists. 
open(FH,"<test.txt") or warn ("File not exists $!"); # This will print a warning message on STDERR

ร‰valuation Perl

La fonction Eval peut gรฉrer les erreurs fatales, les erreurs de compilation, les erreurs d'exรฉcution et les erreurs qui mettent fin ร  votre code ร  un moment donnรฉ.

La fonction Perl Eval peut avoir un bloc de code ou une expression. Evals considรจre tout ce qui y est placรฉ comme une chaรฎne.

Considรฉrons une situation d'appel d'un sous-programme qui n'est pas dรฉfini dans le script. Dans cette situation, le script se termine en indiquant ยซ sous-programme non dรฉfini &XYZ, cette erreur peut รชtre gรฉrรฉe dans la fonction eval.

Il existe de nombreuses utilisations du bloc evals ; une de ces utilisations est lorsque nous voulons charger le module spรฉcifique au systรจme d'exploitation pendant l'exรฉcution.

Ex : La division par zรฉro provoque une erreur fatale ; pour gรฉrer cela, nous pouvons placer le code dans le bloc evals.

$a=5; 
$b=0; 
eval 
{ 
 '$result=$a/$b'; 
} 
if($@)
{
 print "$@";    # All the error codes returned by evals will get stored in $@. 
}

Sortie :

erreur de syntaxe ร  la ligne 8 de C:\Users\XYZ\Text.pl, prรจs de ")

{"

L'exรฉcution de C:\Users\XYZ\Text.pl a รฉtรฉ interrompue en raison d'erreurs de compilation.

Exemple : รฉvaluer ร  l'aide de l'instruction perl die.

sub test 
{ 
die "Dieing in sub test \n"; 
} 
eval 
{ 
test(); 
}; 
print "Caught : $@\n";

Sortie :

Pris : Mourir en sous-test

Utiliser Perl Essayer

Perl ne prend pas en charge les blocs de code try, catch et enfin comme les autres langages de programmation. Nous pouvons toujours les utiliser en chargeant un module Perl externe.

utilisez Try :: Tiny ;

En utilisant cela, nous pouvons placer votre code dans le bloc try et dรฉtecter l'erreur dans le bloc warn.

ร€ la place de $@ utilisรฉ dans eval, Try::Tiny utilise $_.

# gรฉrer les erreurs avec un gestionnaire catch

try 
{ 
die "Die now"; 
} 
catch 
{ 
warn "caught error: $_"; # not $@ 
};

Utilisation enfin.

my $y;
try 
{ 
 die 'foo' 
}
finally 
{ 
    $y = 'bar' 
};

try 
{ 
    die 'Die now' 
} 
catch 
{ 
    warn "Returned from die: $_" 
} 
finally 
{ 
    $y = 'gone' 
};

Sortie :

foo ร  C:\Users\XYZ\Text.pl ligne 4.

Nous pouvons utiliser try, catch et enfin de cette maniรจre.

essayez { # instruction }

attraper {# instruction }

enfin { # instruction } ;

Or

try 
{ 
# statement 
} 
finally 
{ 
# statement 
};

Sortie :

Or

try 
{ 
# statement 
} 
finally 
{ 
# statement 
} 
catch 
{ 
# statement 
};

Sortie :

Programmation de sockets Perl

Qu'est-ce qu'une prise ?

Tutoriel PERL pour dรฉbutants - Guide complet

Le socket est un support par lequel deux ordinateurs peuvent interagir sur un rรฉseau en utilisant l'adresse et les ports rรฉseau.

Supposons que A (serveur) et B (client) soient deux systรจmes qui doivent interagir l'un avec l'autre ร  l'aide de Sockets pour exรฉcuter certains programmes.

Pour implรฉmenter cela, nous devons crรฉer des sockets ร  la fois dans A (serveur) et B (client), A sera dans l'รฉtat de rรฉception et B sera dans l'รฉtat d'envoi.

Un serveur):

Ici, le serveur souhaite recevoir une connexion de B (Client), exรฉcuter certaines tรขches et renvoyer le rรฉsultat ร  B (Client). Lorsque nous exรฉcutons le code, le systรจme d'exploitation en A essaie de crรฉer un socket et lie un port ร  ce socket. Ensuite, il รฉcoutera l'expรฉditeur qui est B.

B (Client).

Ici, le client souhaite envoyer un programme de son systรจme ร  A (serveur) pour un traitement. Lorsque nous exรฉcutons le code, le systรจme d'exploitation en B essaie de crรฉer un socket pour communiquer avec A (serveur), B doit spรฉcifier l'adresse IP et le numรฉro de port de A auquel B souhaite se connecter.

Si cela se passe bien, les deux systรจmes interagiront pour รฉchanger des informations via un seul port. Perl prend รฉgalement en charge la programmation de sockets.

Perl dispose d'une API native grรขce ร  laquelle les sockets peuvent รชtre implรฉmentรฉes. Pour faciliter les choses, il existe de nombreux modules CPAN ร  l'aide desquels nous รฉcrivons des programmes socket.

Opรฉrations du serveur :

  • Crรฉer une prise
  • Lier le socket avec l'adresse et le port
  • ร‰coutez le socket sur cette adresse de port
  • Acceptez les connexions client qui tentent de se connecter en utilisant le port et l'IP du serveur
  • Effectuer des opรฉrations

Projet Operation :

  • Crรฉer une prise
  • Connectez-vous au serveur en utilisant son adresse de port
  • Effectuer des opรฉrations

Serveur client Operation en Perl

socket.io

Il s'agit d'un module de programmation socket, basรฉ sur la programmation orientรฉe objet. Ce module ne prend pas en charge le type de rรฉseau INET utilisรฉ dans les rรฉseaux.

IO::Socket::INET :

Ce module prend en charge le domaine INET et est construit sur IO::Sockets. Toutes les mรฉthodes disponibles dans IO::Sockets sont hรฉritรฉes du module INET.

Client et Serveur utilisant le protocole TCP :

TCP est un protocole orientรฉ connexion ; nous utiliserons ce protocole pour la programmation des sockets.

Avant d'aller plus loin, voyons comment crรฉer un objet pour le module IO::Socket::INET et crรฉer un socket.

$socket = IO::Socket::INET->new(PeerPort => 45787, 
PeerAddr => inet_ntoa(INADDR_BROADCAST), 
Proto => udp,LocalAddr => 
'localhost',Broadcast => 1 )
or 
die "Can't create socket and bind it : $@n";

La nouvelle mรฉthode du module IO::Socket::INET accepte un hachage comme paramรจtre d'entrรฉe du sous-programme. Ce hachage est prรฉdรฉfini, et il suffit de fournir les valeurs des clรฉs que l'on souhaite utiliser. Il existe une liste de clรฉs utilisรฉes par ce hachage.

Adresse homologue

Adresse de l'hรดte distant

Hรดte homologue

Synonyme pour PeerAddr

Port homologue

Port ou service distant

Adresse Locale

Adresse de liaison de l'hรดte local

localhost

Synonyme pour LocalAddr

PortLocal

Port de liaison de l'hรดte local

Proto

Nom (ou numรฉro) du protocole

Type

Type de Socket

ร‰coutez

Taille de la file d'attente pour l'รฉcoute

RรฉutiliserAdr

Dรฉfinir SO_REUSEADDR avant la liaison

Rรฉutilisation

Dรฉfinir SO_REUSEADDR avant la liaison

RรฉutiliserPort

Dรฉfinir SO_REUSEPORT avant la liaison

Diffusez

Dรฉfinir SO_BROADCAST avant la liaison

Temps mort

Valeur du dรฉlai d'attente pour diverses opรฉrations

MultiHรฉbergement

Essayez toutes les adresses pour les hรดtes multirรฉsidents

Blocage

Dรฉterminer si la connexion sera en mode blocage

Serveur.pl

use IO::Socket; 
use strict; 
use warnings; 
my $socket = new IO::Socket::INET ( 
LocalHost => 'localhost', 
LocalPort => '45655', 
Proto => 'tcp', 
Listen => 1, 
Reuse => 1, 
); 
die "Could not create socket: $!n" unless $socket; 
print "Waiting for the client to send datan"; 
my $new_socket = $socket->accept(); 
while(<$new_socket>) { 
print $_; 
} 
close($socket);

Client.pl

use strict; 
use warnings; 
use IO::Socket; 
my $socket = new IO::Socket::INET ( 
PeerAddr => 'localhost', 
PeerPort => '45655', 
Proto => 'tcp', 
); 
die "Could not create socket: $!n" unless $socket; 
print $socket "Hello this is socket connection!n"; 
close($socket);

Remarque:

Dans la programmation socket, nous devrons d'abord exรฉcuter Server.pl, puis client.pl individuellement dans diffรฉrentes invites de commande si nous exรฉcutons sur un hรดte local.

Qu'est-ce que les modules et packages Perl

Les modules et les packages sont รฉtroitement liรฉs les uns aux autres et sont indรฉpendants. Package : un package Perl est รฉgalement connu sous le nom d'espace de noms et contient toutes les variables uniques utilisรฉes telles que des hachages, des tableaux, des scalaires et des sous-programmes. Module : Le module est une collection de code rรฉutilisable, dans lequel nous y รฉcrivons des sous-programmes. Ces modules peuvent รชtre chargรฉs dans des programmes Perl pour utiliser les sous-programmes รฉcrits dans ces modules.

Que sont les modules Perl ?

Les modules standard seront installรฉs lors de l'installation de Perl sur n'importe quel systรจme. CPAN : Perl complet Archive Network โ€“ Un rรฉfรฉrentiel mondial de modules Perl. Nos propres modules Perl personnalisรฉs qui peuvent รชtre รฉcrits par nos soins. Fondamentalement, un module chargรฉ dans n'importe quel script exportera toutes ses variables globales et sous-programmes. Ces sous-programmes peuvent appeler directement comme s'ils รฉtaient dรฉclarรฉs dans le script lui-mรชme. Les modules Perl peuvent รชtre รฉcrits avec l'extension .pm au nom de fichier Ex : Foo.pm. Un module peut รชtre รฉcrit en utilisant le ยซ package Foo ยป au dรฉbut du programme.

Module Perl de base :

#!/usr/bin/perl 
package Arithmetic; 
sub add 
{ 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a+$b);
} 
sub subtract 
{ 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a-$b); 
} 
1;

Aucune sortie

Pour utiliser ce module Perl, nous devons le placer dans le rรฉpertoire actuellement en cours de travail.

Nous pouvons charger un module Perl en utilisant require ou use n'importe oรน dans le code. La principale diffรฉrence entre require et use est qu'il faut exiger un module chargรฉ pendant l'exรฉcution et utiliser des charges pendant la compilation.

#!/usr/bin/perl
require
Arithmetic;
print Arithmetic::add(5,6);
print Arithmetic:: subtract (5,6);

Ici, dans l'exemple ci-dessus, nous accรฉdons aux sous-programmes en utilisant le nom de module complet.

Nous pouvons รฉgalement accรฉder au package en utilisant ยซ utiliser l'arithmรฉtique ยป.

Exportateur:

Ce module a une fonctionnalitรฉ par dรฉfaut d'importation de mรฉthodes.

#!/usr/bin/perl 
package Arithmetic; 
require Exporter; 
@ISA= qw(Exporter); # This is basically for implementing inheritance. 
@EXPORT = qw(add); 
@EXPORT_OK = qw(subtract); 
sub add 
{ 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a+$b); 
} 
sub subtract 
{ 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a-$b);
 } 
1;

Le tableau @EXPORT peut รชtre utilisรฉ pour transmettre une liste de variables et de sous-programmes qui par dรฉfaut seront exportรฉs vers l'appelant du module.

Le tableau @EXPORT_OK peut รชtre utilisรฉ pour transmettre une liste de variables et de sous-programmes qui seront exportรฉs ร  la demande, oรน l'utilisateur doit spรฉcifier lors du chargement du module.

#!/usr/bin/perl 
use 
Arithmetic qw(subtract); 
print add(5,6); 
print subtract (5,6);

Par dรฉfaut, l'ajout de sous-programme sera exportรฉ. La mรฉthode de soustraction ne sera pas exportรฉe si elle n'est pas spรฉcifiรฉe lors du chargement du module.

Programmation orientรฉe objet en Perl

Dans cette section, nous apprendrons comment crรฉer des modules orientรฉs objet Perl. Voyons dโ€™abord quel est lโ€™objet ? Un objet est une instance ร  l'aide de laquelle nous pouvons accรฉder, modifier et localiser certaines donnรฉes dans n'importe quel module Perl. Il ne s'agit que de faire en sorte que votre package Perl, vos variables et vos sous-programmes existants agissent comme une classe, des objets et des mรฉthodes en rรฉfรฉrence ร  d'autres langages de programmation.

Crรฉer une classe

Nous savons dรฉjร  comment crรฉer des modules ร  partir du sujet prรฉcรฉdent. Le but de la classe est de stocker des mรฉthodes et des variables. Un module Perl aura des sous-programmes qui sont des mรฉthodes. Nous devons accรฉder ร  ces variables et objets de sous-programmes.

Constructeur Perl

Un constructeur en Perl est une mรฉthode qui s'exรฉcutera et nous renverra une rรฉfรฉrence avec le nom du module balisรฉ avec la rรฉfรฉrence. Cโ€™est ce quโ€™on appelle une bรฉnรฉdiction pour la classe. Nous utilisons une variable particuliรจre pour bรฉnir une classe Perl, qui est bless.

#!/usr/bin/perl 
package Arithmetic; 
sub new 
{ 
my $class=shift;
my $self={}; 
bless $self, $class; 
return $self; 
} 
sub add 
{ 
my $self= shift; 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a+$b); 
}
sub subtract 
{ 
my $self= shift; 
my $a=$_[0]; 
my $b=$_[1]; 
return ($a-$b); 
} 
1;

La nouvelle mรฉthode utilisรฉe comme constructeur pour une classe, Ce constructeur va crรฉer un objet pour nous et reviendra au script qui appelle ce constructeur.

#!/usr/bin/perl
use Arithmetic;
my $obj= Arithmetic->new(); 
my $result= $obj->add(5,6); 
print "$result";
$result = $obj->subtract(6,5);
print "$result";

Ici, nous devons comprendre comment l'objet a รฉtรฉ crรฉรฉ. Chaque fois que nous essayons de crรฉer un objet pour la classe, nous devons utiliser le nom complet de la classe. Supposons que la classe Perl se trouve dans un fichier lib\Math\Arithmetic.pm. Et, si nous voulons accรฉder ร  cette classe Perl ร  partir du rรฉpertoire lib, nous devons fournir le chemin complet de la classe lors de l'appel du script.

utilisez lib::Math::Arithmรฉtique ;

my $obj = lib::Math::Arithmetic->new();

C'est ainsi que se produit la crรฉation d'objets en Perl.

@INC :

Comment le script Perl sait-il oรน se trouve le module de bibliothรจque ? Perl ne connaรฎt que le rรฉpertoire actuel du script et le chemin de la bibliothรจque intรฉgrรฉe ร  Perl. Chaque fois que nous utilisons un module Perl qui ne se trouve pas dans le rรฉpertoire actuel ou dans le chemin de la bibliothรจque Perl, le script รฉchouera toujours. ร€ propos de @INC, il s'agit d'un tableau contenant tous les chemins de rรฉpertoire dans lesquels il doit rechercher les modules Perl. Essayez d'exรฉcuter cette commande et voyez quel sera le rรฉsultat.

perl โ€“e "print @INC"

Cela donnera une sortie, et c'est le chemin oรน les modules lib seront disponibles. Chaque fois que nous utilisons un nouveau module de bibliothรจque, nous devons dire ร  Perl, l'interprรจte, de rechercher cet emplacement particulier oรน le module Perl est disponible.

push(@INC, "PATH TO YOUR MODULE");

Faites-en votre premiรจre ligne de code. Cela indiquera ร  votre interprรจte dโ€™examiner ce chemin. ou utilisรฉ

lib Arithmetic; # List here is your Perl Module location

Destructeur Perl

Le destructeur d'un objet est appelรฉ par dรฉfaut ร  la fin et avant la fin de votre script. Ceci est utilisรฉ pour dรฉtruire vos objets de la mรฉmoire.


Scripts Shell PERL V/s

Introduction ร  la programmation PERL

  • La programmation en Perl ne provoque pas de problรจmes de portabilitรฉ, ce qui est courant lors de l'utilisation de diffรฉrents shells dans les scripts shell.
  • La gestion des erreurs est trรจs simple en Perl
  • Vous pouvez facilement รฉcrire des programmes longs et complexes sur Perl en raison de son immensitรฉ. Cela contraste avec Shell qui ne prend pas en charge les espaces de noms, les modules, les objets, l'hรฉritage, etc.
  • Shell dispose de moins de bibliothรจques rรฉutilisables disponibles. Rien comparรฉ au CPAN de Perl
  • Shell est moins sรฉcurisรฉ. Il appelle des fonctions externes (les commandes comme mv, cp etc dรฉpendent du shell utilisรฉ). Au contraire, Perl fait un travail utile en utilisant des fonctions internes.

Comment PERL est utilisรฉ dans les tests d'automatisation

Perl est largement utilisรฉ en automatisation. Ce nโ€™est peut-รชtre pas le meilleur langage de programmation au monde, mais il est le mieux adaptรฉ ร  certains types de tรขches. Discutons de oรน et pourquoi Perl est utilisรฉ Tests d'automatisation.

Tests de stockage

Tests de stockage ร  l'aide de Perl

Quโ€™est-ce que le stockage ? Donnรฉes stockรฉes dans des fichiers.

Supposons que nous ayons un problรจme liรฉ au stockage Cas de test oรน nous devons รฉcrire des donnรฉes sur une partition, les lire et vรฉrifier que les donnรฉes sont รฉcrites correctement.

Cela peut รชtre fait manuellement, mais un testeur manuel peut-il effectuer la mรชme chose 10000 fois ? Ce sera un cauchemar ! Nous avons besoin d'automatisation

Le meilleur outil pour automatiser tout ce qui concerne le stockage est Perl en raison de ses techniques de gestion de fichiers, REGEX et une analyse de fichiers puissante qui consomme le moins de temps d'exรฉcution par rapport aux autres langages de programmation.

Pourquoi devons-nous tester le stockage ? Pensez aux grands centres de donnรฉes oรน les donnรฉes circuleront en continu d'un systรจme ร  un autre, avec des milliers d'enregistrements stockรฉs par seconde. Il est essentiel de tester la robustesse dโ€™un tel mรฉcanisme de stockage.

De nombreuses entreprises comme HP, Dell, IBM et de nombreux fabricants de serveurs utilisent Perl comme interface pour tester les fonctionnalitรฉs dans les domaines du stockage et de la mise en rรฉseau. NetApp est l'une de ces sociรฉtรฉs qui travaille entiรจrement sur le stockage et utilise Perl comme langage de programmation pour automatiser les cas de test.

Si vous รชtes intรฉressรฉ par l'automatisation Perl, il serait conseillรฉ de vous renseigner sur le stockage et la mise en rรฉseau. Concepts.

Tests de serveur et de rรฉseau :

Tests de serveurs et de rรฉseaux avec Perl

Tests de serveurs et de rรฉseaux avec Perl

PERL est largement utilisรฉ pour la surveillance de la disponibilitรฉ et des performances des serveurs.

Prenons un centre de donnรฉes dotรฉ de 100 hรดtes (serveurs). Vous devez vous connecter ร  chaque hรดte, exรฉcuter certaines commandes ร  distance. Vous souhaitez รฉgalement redรฉmarrer le systรจme et vรฉrifier quand il revient en ligne.

Effectuer manuellement cette tรขche pour les 100 hรดtes sera un cauchemar. Mais nous pouvons facilement automatiser cela en utilisant PERL

ร‰tapes de conception pour rรฉaliser cette automatisation ci-dessus ร  l'aide de PERL

  1. Prenez les donnรฉes du fichier sur les informations de l'hรดte telles que (IP, nom d'utilisateur et mot de passe).
  2. Utilisez Net::SSH2 pour vous connecter ร  chaque systรจme et รฉtablir un canal pour exรฉcuter les commandes.
  3. Exรฉcutez l'ensemble des commandes requises, ex : ls, dir, ifconfig,ps etc.
  4. Redรฉmarrez le systรจme.
  5. Attendez 10 minutes pour que le systรจme dรฉmarre.
  6. Pingez le systรจme ร  lโ€™aide du module Net::Ping et imprimez lโ€™รฉtat.

Nous coderons le scรฉnario ci-dessus.

Prenons un fichier appelรฉ Input.txt qui stockera les informations complรจtes sur tous les hรดtes sur lesquels nous devons nous connecter et exรฉcuter la commande.

Entrรฉe.txt

Mot de passe root 192.168.1.2

Mot de passe root 192.168.1.3

192.168.1.4 racine racine123

HostCheck.pl

use Net::SSH2;
use Net::Ping;
use strict;
use warnings;
my $ping = Net::Ping->new();    # Creating object for Net::Ping
my $SSHObj = Net::SSH2->new();  #Creating object for Net::SSH2
open( FH, "Input.txt" );        # Opening file and placing content to FH
my @hosts = <FH>;
my $ip;
my @ips;
foreach (@hosts)
{
    if ( $_ =~ /(.*)\s+(\w+)\s+(.*)/ )    #Regex to get each info from file
    {
        $ip = $1;
        my $user = $2;
        my $password = $3;
        $SSHObj->connect($ip);
        print "Connecting to host -- $ip --Uname:$user --Password:$password\n";
        my $status = $SSHObj->auth_password( $user, $password );
        print "$status\n";
        die("unable to establish connection to -- $ip") unless ($status);
        my $shell = $SSHObj->channel();
        print "$_\n" while <$shell>;
        $shell->blocking(1);
        $shell->pty('tty');
        $shell->shell();
        sleep(5);
        #Executing the list of command on particular host. Can be any command
        print $shell "ls \n";
        print "$_\n" while <$shell>;
        print $shell "ps \n";
        print "$_\n" while <$shell>;
        print $shell "dir \n";
        print "$_\n" while <$shell>;
        print $shell "init 6\n";    #rebooting the system
        push( @ips, $ip );
    }
}
sleep 600;
foreach (@ips)
{
    if ( $ping->ping($_) )
    {
        print "$_ is alive.\n" if $ping->ping($_);
    }
    else
    {
        print "$_ is not still up --waiting for it to come up\n";
    }
}

Test Web

Perl ne se limite pas aux tests de stockage et de rรฉseau. Nous pouvons รฉgalement effectuer des tests Web en utilisant PERL. WWW-Mรฉcaniser est un module utilisรฉ pour test Web. Fondamentalement, il ne lancera aucun navigateur pour tester les fonctionnalitรฉs des applications Web, mais utilisera plutรดt le code source des pages HTML.

Nous pouvons รฉgalement effectuer des tests basรฉs sur un navigateur en utilisant Selenium IDE, RC, pilote Web. Perl est pris en charge pour Selenium.

\nโ€; #this conservera la chaรฎne restante une fois la correspondance de motif terminรฉe.
imprimer "

Rรฉsumez cet article avec :