Tutorial Perl: variabilă, matrice, hashuri cu exemplu de programare

Ce este Perl?

Perl este un limbaj de programare de nivel înalt, de uz general, interpretat și dinamic. Perl este un termen care înseamnă „Practical Extraction and Reporting Language”, chiar dacă nu există un acronim pentru Perl. A fost introdus de Larry Wall în 1987. Limbajul Perl a fost special conceput pentru editarea textului. Dar acum, este utilizat pe scară largă pentru o varietate de scopuri, inclusiv administrarea sistemului Linux, programarea în rețea, dezvoltarea web etc.

Prezentare generală a limbajelor de programare

Să o punem într-un mod simplu. În timp ce computerele înțeleg doar 0 și 1 (limbaj binar/limbaj mașină/[limbaj de nivel scăzut]), este foarte dificil să programăm într-un limbaj binar pentru noi, oamenii. Perl este un limbaj de programare care folosește elemente de limbaj natural, cuvinte care sunt folosite în limba engleză comună și, prin urmare, este mai ușor de înțeles de către oameni.limbaj de nivel înalt]. Acum există o problemă; computerele nu pot înțelege limbaje de nivel înalt, pe care noi, oamenii, le putem înțelege cu ușurință. Pentru asta, avem nevoie de ceva care să poată traduce limbajul de nivel înalt în limbajul de nivel scăzut. Aici interpretul ne vine în ajutor. Interpretul este un program care convertește programul scris în limbajul de nivel înalt într-un limbaj de nivel scăzut pentru ca computerul să înțeleagă și să execute instrucțiunile scrise în program. Prin urmare, Perl este un limbaj de programare interpretat.

Unde se folosește Perl?

Puterea limbajului de scripting Perl poate fi implementată în multe domenii. Cea mai populară utilizare a Perl este în dezvoltarea Web., Perl este, de asemenea, folosit pentru a automatiza multe sarcini în serverele Web și alte joburi de administrare, poate genera automat e-mailuri și curăța sistemele. Perl este încă folosit în scopul său inițial, adică extragerea datelor și generarea de rapoarte. Poate produce rapoarte privind utilizarea resurselor și poate verifica problemele de securitate într-o rețea. Din acest motiv, Perl a devenit un limbaj popular folosit și în dezvoltarea web, rețele și bioinformatică. Pe lângă toate acestea, perl poate fi folosit și pentru programarea CGI.

Perl poate fi folosit și pentru crearea și manipularea imaginilor. În afară de această rețea prin telnet, FTP, etc., crearea interfeței grafice cu utilizatorul, electronicele VLSI și crearea de filtre de e-mail pentru a reduce practicile de spam sunt câteva cazuri de utilizare ale Perl.

Perl este, de asemenea, cunoscut pentru implementarea practicilor OOP (programare orientată pe obiect) și acceptă toate formele de moștenire (simple, multiple și diamantate), polimorfism și încapsulare. Perl este suficient de flexibil pentru a suporta simultan practicile procedurale și POO. Perl are, de asemenea, module suplimentare care vă permit să scrieți sau să utilizați/reutilizați codul scris Python, PHP, PDL, TCL, Octave, Java, C, C++, Basic, Ruby și Lua în scriptul dvs. Perl. Aceasta înseamnă că puteți combina Perl cu aceste suplimentare limbaje de programare mai degrabă rescriind codul existent.

Aplicații ale limbajului de programare Perl

Aplicații ale limbajului de programare Perl

De ce să folosiți Perl?

Este adevărat că există și alte limbaje de programare care pot fi folosite pentru a face toate lucrurile care au fost menționate mai sus, atunci de ce ar trebui să utilizați în mod specific Perl? Perl este foarte ușor de învățat, mai ales dacă ai experiență în programarea computerelor. Perl a fost conceput pentru a fi ușor de scris și de înțeles de către oameni, mai degrabă decât să-l faciliteze procesarea de către computere. Folosește expresii regulate. Stilul său natural de limbaj este diferit de alte limbaje de programare care folosesc gramatică și sintaxe specifice; prin urmare, Perl este foarte flexibil și nu vă impune vreun mod special de a gândi o soluție sau o problemă. Perl este extrem de portabil. Poate rula pe orice sistem de operare care are un interpret Perl instalat, deci este independent de platformă. Toate Linux OperaSistemele ting sunt instalate cu Perl, astfel încât să puteți începe codarea Perl în Linux imediat. Acest lucru este spre deosebire de scripturile Shell, în care codul se modifică odată cu utilizarea distribuției Linux, făcându-l din ce în ce mai puțin portabil. Sarcinile specifice mici în Perl devin foarte ușoare și rapide. Pe parcursul acestui tutorial Perl pentru începători, veți învăța cum puteți codifica programe mici și rapide pentru sarcini specifice. Să luăm un exemplu simplu al programului clasic Hello World care este folosit pentru a începe să învețe orice limbaj de programare care are UNIX ca rădăcină:

Exemplu: Perl salut lume

Exemplu simplu de Perl

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

ieșire:

Salut Lume!

Cele două linii de cod de mai sus se vor imprima Bună, lume! Acum nu a fost prea simplu și rapid? Elevii cu cunoștințe de C, C++ va ști că necesită mai multe linii de cod pentru a obține aceeași ieșire în acele limbi.

S-ar putea să vă întrebați de ce Perl este atât de faimos pe web. Este simplu, deoarece majoritatea lucrurilor care se întâmplă pe web sunt de TEXT, iar Perl este foarte bun la procesarea textului. Dacă comparăm Perl cu oricare dintre limbi, atunci Perl va fi cea mai bună limbă care este bună în gestionarea fișierelor, procesarea textului și raportarea rezultatelor

Unul dintre cele mai bune avantaje ale Perl este că este liber de utilizat

Comunitatea Perl crede cu tărie că software-ul ar trebui să fie liber disponibil, liber modificabil și liber distribuit. Mai mulți voluntari din comunitatea Perl se străduiesc să facă limbajul de programare cât mai bun posibil.

Avantajele și dezavantajele Perl

Pro-uri: Contra:

Avantajele Perl

Dezavantajele Perl

  • În comparație cu alte limbaje de programare, Perl este cel mai puternic pentru manipularea și analizarea textului
  • Acesta este un limbaj interpretat cu timp de execuție rapid, deoarece nu este nevoie să compilați un script Perl
  • Simplu și ușor de programat și de înțeles.
  • Este orientat pe obiect.
  • Biblioteca CPAN facilitează dezvoltarea Perl (vom afla mai multe despre acest lucru mai târziu în subiect).
  • Folosit în dezvoltarea web, în ​​principal pentru Gateway-uri de plată.
  • Folosit în automatizare și pentru a testa majoritatea lucrurilor legate de rețea și stocare.
  • Există suport minim pentru GUI în comparație cu alte limbaje de programare.
  • Trebuie să vă referiți la module complexe de bibliotecă care nu sunt atât de ușor de înțeles (Nu vă speriați după ce știți cum să faceți lucrurile, totul va fi ușor).
  • Înțelegerea modelelor complexe necesită experiență.

Să începem

Cu suficiente cunoștințe despre istoria Perl și despre conceptele de bază de programare a computerelor necesare pentru codificare în Perl, este timpul să ne aruncăm la cap și să începem cu Perl. Următorul capitol vă va învăța cum puteți configura Perl pe sistemul dumneavoastră și să vă pregătiți pentru călătoria de codare în Perl. Acest tutorial de scriptare Perl va lua Linux ca sistem de operare pe care studenții îl vor folosi pentru codificare în Perl.

Descărcați și instalați Perl - Windows, Mac și Linux

Cum să obțineți Perl?

Vești bune probabil il ai!

Dar dacă nu îl găsiți deja pe sistemul dvs., îl puteți obține în continuare gratuit.

Pentru a afla dacă aveți deja instalat Perl, intrați în linia de comandă și tastați: perl -v

Cum se descarcă Perl

Comanda va afișa versiunea Perl dacă este instalată. În acest caz, versiunea este v5.14.2. Dar dacă nu... nu intrați în panică...

UnixTutorial PERL pentru începători - Ghid complet Deja instalat Vine preinstalat cu Perl, deși poate fi necesar să actualizați la cea mai recentă versiune.
Mac OS Tutorial PERL pentru începători - Ghid complet Deja instalat OSX vine cu Perl preinstalat, deși poate fi necesar să-l actualizați la cea mai recentă versiune
WindowsTutorial PERL pentru începători - Ghid complet Trebuie instalat Sunt disponibile două opțiuni

  1. Strawberry Perl este o distribuție binară open source a Perl pentru Windows OS. Include un compilator și module preinstalate care oferă posibilitatea de a instala module XS CPAN direct din CPAN
  2. ActiveState perl oferă o distribuție binară a Perl (pentru multe platforme), precum și propriul manager de pachete Perl (PPM)

Actualizarea Perl pe Linux:

Dacă trebuie să actualizați versiunea Perl, introduceți o singură linie de comandă

sudo apt-get install perl

si relaxeaza-te. De restul se va ocupa. Doar asigurați-vă că aveți o conexiune activă la internet.

Actualizați PERL pe Linux

Actualizați PERL pe Linux

Instalați perl pentru Windows:

Mai întâi, descărcați Active Perl de aici legătură. Urmați acești pași pentru a instala ActivePerl Windows sistem. Consultați capturile de ecran de mai jos pentru același lucru.

Pasul 1: După ce descărcați programul de instalare și începeți instalarea, veți vedea fereastra de mai jos, faceți clic pe următorul pentru a continua.

Cum se instalează Perl pe Windows

Pasul 2: Acceptați acordul de licență pentru a continua instalarea.

Cum se instalează Perl pe Windows

Pasul 3: Mai jos sunt diferite pachete care vor fi instalate. În mod implicit, toate vor fi selectate. Singurul lucru diferit este PPM (Perl Package Manager). Acesta este utilitarul oferit de Active Perl pentru a instala module sau biblioteci externe Perl în sistemul dumneavoastră. Faceți clic pe Următorul pentru a continua.

Instalarea Perl pe Windows

Pasul 4: Acestea sunt diferite tipuri de extensii Perl care pot fi folosite pentru Perl. În mare parte, vom folosi .Pl, .Plx și .Pm pentru Perl. Modulele Perl folosesc practic .Pm ca extensie de fișier pentru a se referi la un fișier de bibliotecă. Selectați toate opțiunile și faceți clic pe butonul Următorul.

Instalarea Perl pe Windows

Pasul 5: Faceți clic pe butonul Instalare pentru a continua cu instalarea.

Instalarea Perl pe Windows

Pasul 6: Odată instalat, executați comanda „Perl –v” pentru a verifica dacă Perl este instalat cu succes în sistemul dumneavoastră.

Instalare PERL activată Windows

Există o mulțime de lucruri care trebuie discutate pentru setarea mediului Perl atât în ​​Linux, cât și Windows, deoarece nu vor fi multe fișiere de bibliotecă incluse în această instalare. Trebuie să le instalați manual. Le puteți instala manual folosind CPAN (Comprehensive Perl Archive Network) sau fie PPM care funcționează numai pentru perl windows. Dar aceste fișiere nu sunt obligatorii pentru a începe codarea în Perl.

În afară de această configurare Windows, ați putea folosi Windows Noua caracteristică a subsistemului Linux din 10 pe Windows și utilizați-o pentru a rula codul perl

Primul program Perl

Hello world!

Exemplu Perl: Hello World

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

Nu vă faceți griji dacă nu înțelegeți acest text. Totul va fi clar în curând. Haide și aruncă o privire pe rând:

#!/usr/bin/perl		

Aceasta spune Operating System să execute acest fișier cu programul situat la /usr/bin/perl Unele IDE-uri nu au nevoie de această linie. Dacă este esențial, trebuie să scrieți aici o cale către interpret. Tine minte! Această linie specială trebuie să fie la începutul programului dvs. și trebuie să înceapă de la #! folosiți avertismente; Aceasta este o altă comandă specială care îi spune interpretului să afișeze orice avertismente, adică -w care activează avertismente la nivel global.

print "Hello World";		

Instrucțiunea de imprimare scrie text pe ecran. Punctul și virgulă de la sfârșitul liniei îi spune interpretului perl că instrucțiunea este terminată. Trebuie să puneți un punct și virgulă la sfârșitul fiecărei instrucțiuni din codul Perl. Notați ghilimele ("). Este necesar pentru instrucțiunile de imprimare. Salvați scriptul de mai sus ca firstprog.pl

On Windows

Dacă aveți Strawberry instalat, puteți pur și simplu să faceți clic pe Run. De asemenea, puteți rula interfața de linie de comandă și puteți scrie pe consolă:

C:\> perl path\firstprog.pl		

sau, dacă perl.exe nu este în calea ta:

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

Pe Linux/Unix

Trebuie doar să deschideți Terminalul și să scrieți:

perl firstprog.pl		

Dacă nu puteți rula programul, asigurați-vă că aveți eligibilitatea pentru a-l rula. Introduceți în terminal:

chmod +x firstprog.pl		

Programul dvs. este acum executabil și gata de rulare. Pentru a executa, scrie:

./firstprog		

Instalați modulele cpan minus

Modulele sunt seturi de coduri care sunt folosite pentru a efectua sarcini care efectuează operații comune în mai multe programe. Dacă utilizați module perl, nu trebuie să rescrieți codurile pentru a efectua aceeași operațiune. Perl poate folosi astfel de biblioteci externe de coduri. Una dintre cele mai bune biblioteci este CPAN. Aceasta înseamnă Comprehensive Perl Archirețea și conține o cantitate mare de module Perl pe care să le utilizați. Este o comunitate sau o rețea a unui număr mare de dezvoltatori care contribuie cu astfel de module. Instalând suport pentru modulele CPAN în modulul dvs. perl, puteți utiliza modulele CPAN și vă puteți ușura munca. Majoritatea modulelor Perl sunt scrise în Perl, unele folosesc XS (sunt scrise în C), așa că necesită un compilator C (este ușor să obțineți această configurare – nu vă panicați. Modulele pot avea dependențe de alte module (aproape întotdeauna de CPAN) și nu poate fi instalat fără ele (sau fără o versiune specifică a acestora) Merită să citiți cu atenție documentația pentru opțiunile de mai jos obțineți, despachetați, construiți și instalați module din CPAN pentru a facilita instalarea altor module (ne veți mulțumi mai târziu). App-cpanminus module perl, în linia de comandă tastați:

cpan App::cpanminus

cpan App::cpanminus Asigurați-vă că aveți conexiune la internet în timp ce modulele perl sunt descărcate și instalate.

Instalarea modulelor cpan minus

Acum instalați orice modul:

cpan –i <Module_Name>.		

Să vedem un exemplu de instalare a unui modul File::Data (Este o interfață pentru a accesa File Data).

Instalarea modulelor cpan minus

Variabila Perl

Acum, vom vorbi despre variabile. Vă puteți imagina un tip de container ca variabil care conține una sau mai multe valori. Odată definit, numele variabilei rămâne același, dar valoarea sau valorile se schimbă din nou și din nou.

Există 3 tipuri de variabile:

Tipuri de variabile în Perl

Tipuri de variabile în Perl

Cele mai ușoare sunt scalarii, iar acesta este subiectul nostru de astăzi

Variabilă scalară

Acest tip de variabilă deține o singură valoare.

Numele său începe cu un semn dolar și un identificator Perl (este numele variabilei noastre).

Variabilă scalară în Perl

Variabilă scalară în Perl

Convenția de denumire

Dacă sunteți familiarizat cu alte limbaje de programare, atunci ați ști că există anumite reguli despre denumirea variabilelor. În mod similar, Perl are trei reguli pentru denumirea scalarilor.

  1. Toate numele scalare vor începe cu $. Este ușor să vă amintiți să prefixați fiecare nume cu $. Gândiți-vă la asta ca la un scalar $.
  2. Ca PHP. după primul caracter $, care este special în Perl, sunt permise caractere alfanumerice, adică de la a la z, de la A la Z și de la 0 la 9. Este permis și caracterul de subliniere. Folosiți sublinierea pentru a împărți numele variabilelor în două cuvinte. „Dar primul caracter nu poate fi un număr”
  3. Chiar dacă numerele pot face parte din nume, ele nu pot veni imediat după $. Aceasta înseamnă că primul caracter după $ va fi fie un alfabet, fie liniuța de subliniere. Cei care vin din C/C++ fundalul ar trebui să poată recunoaște imediat asemănarea. Exemple

Exemplu Perl:

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

Acestea, totuși, nu sunt nume legale de variabile scalare.

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

Regula generală spune că, atunci când Perl are doar unul din ceva, acesta este un scalar. Scalarii pot fi cititi de pe dispozitive și îi putem folosi în programele noastre.

Două tipuri de tipuri de date scalare

  1. Numbers
  2. Corzi

Numbers:

În acest tip de date scalare am putea specifica:

  • numere întregi, pur și simplu sunt numere întregi, cum ar fi 2, 0, 534
  • numere în virgulă mobilă, sunt numere reale, cum ar fi 3.14, 6.74, 0.333

Număr variabile în Perl

Notă: În general, interpretul Perl vede numere întregi ca numere în virgulă mobilă. De exemplu, dacă scrieți 2 în programele dvs., Perl îl va vedea ca 2.0000

Literale întregi:

Este format din una sau mai multe cifre, precedate opțional de un plus sau minus și care conțin liniuțe de subliniere.

Exemple Perl:

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

După cum puteți vedea, nu este nimic special. Dar crede-mă, acesta este cel mai comun tip de scalari. Sunt peste tot.

Literale în virgulă mobilă:

Este format din cifre, opțional minus, virgulă zecimală și exponent.

Exemple 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

Literale în virgulă mobilă în Perl

Reprezentare octală, hexazecimală și binară:

Este o alternativă la sistemul zecimal. Permiteți-mi să vă arăt reprezentarea octală, hexazecimală și binară. Un tabel scurt prezintă toate informațiile importante despre aceste stiluri ciudate:

Reprezentare bază Procedat de
octal 8 0 (zero)
Hexazecimal 16 0x
Binar 2 0b

Exemple Perl:

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

Toate aceste valori pentru Perl înseamnă același lucru. Perl nu stochează valorile în același format. Acesta va converti intern aceste valori hexazecimale, binare, octale în zecimale.

Atribuirea este cea mai comună operație pe un scalar și este foarte simplă. Perl folosește pentru acel semn egal. Ia o valoare a expresiei din partea dreaptă și pune această valoare variabilei noastre.

Să aruncăm o privire la exemple:

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

În plus, puteți introduce în variabilă nu doar un număr, ci și o expresie.

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

Corzi

Șiruri: este, de asemenea, un tip de scalar foarte simplu.

Lungimea maximă a unui șir în Perl depinde de cantitatea de memorie pe care o are computerul. Nu există limită pentru dimensiunea șirului, orice cantitate de caractere, simboluri sau cuvinte poate alcătui șirurile dvs. Cel mai scurt șir nu are caractere. Cel mai lung poate umple toată memoria sistemului. Programele Perl pot fi scrise în întregime în setul de caractere ASCII de 7 biți. Perl vă permite, de asemenea, să adăugați orice set de caractere pe 8 sau 16 biți. caractere non-ASCII din literalele șir. Perl a adăugat și suport pentru Unicode UTF-8.

Tipuri de șiruri de caractere în Perl

Ca și numerele, există două tipuri diferite de șiruri:

  • Literele șir de ghilimele simple
  • Double citează literale șiruri

Literale șir de ghilimele simple

Ghilimelele simple sunt folosite pentru a include datele pe care doriți să le luați la propriu. Un scurt exemplu și totul ar trebui să fie clar:

Exemple Perl:

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

ieșire:

este $num

Aici, din cauza ghilimelelor simple, valoarea $num nu este luată și caracterele literale „$”, „n”, „u” și „m” sunt adăugate la valoarea $txt

Double-literale șir de caractere citate

Double ghilimelele sunt folosite pentru a include datele care trebuie interpolate înainte de procesare. Asta înseamnă că caracterele și variabilele evadate nu sunt pur și simplu introduse literal în operațiunile ulterioare, ci sunt evaluate pe loc. Caracterele de evacuare pot fi folosite pentru a insera linii noi, tab-uri etc.

Exemple Perl:

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

ieșire:

este 7

Aici, din cauza ghilimelelor duble, valoarea $num este adăugată la valoarea $txt

Double-ghilimele interpolează variabile scalare și matrice, dar nu hash-uri. Pe de altă parte, puteți folosi ghilimele duble pentru a interpola felii din ambele matrice și hash-uri.

Misterios \n

Luați în considerare următorul program

Exemple Perl:

print "hello \n";

ieșire:

Alo

Perl nu afișează doar „hello\n”, ci doar „hello”. De ce? Deoarece „\n” este un semn special și înseamnă că doriți să mergeți la o nouă linie în timp ce afișați textul în program. imprimați „bună ziua\n linie nouă”; Următoarea întrebare - există vreun alt semn special? Da, ei sunt! Dar nu vă faceți griji - doar câteva. Verificați tabelul de mai jos

construi Descriere
\n linie nouă
\r reveni
\t fila
\f formfeed
\b spate spate
\a clopot
\e scăpa
\ 007 orice valoare ASCII octală (aici, 007 = clopot)
\x7f orice valoare hexadecimală (aici, 7f = șterge)
\\ backslash
\ " citat dublu
\l următoarea literă mică
\L toate literele următoare până la \E
\u litera următoare majuscule
\U majuscule toate literele următoare până la \E
\E Terminați \L, \U

Știu, nu există „doar câteva”… Dar crede-mă, trebuie să știi doar

Variabilă șiruri

Este aceeași operațiune, pe care o vedem în alocarea numerelor. Perl primește șirul nostru din partea dreaptă a semnului egal și pune acest șir într-o variabilă.

Exemple 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;

ieșire:

tutorial 315

După cum puteți vedea, puteți pune numere și șiruri în aceleași variabile. Nu există o clasă de variabile.

Concatenarea șirurilor (perioada) :

Operatorul de concatenare „.” unește două sau mai multe șiruri. Tine minte! Dacă șirul conține ghilimele, întoarceri de transport, bare oblice inverse, toate aceste caractere speciale trebuie să fie eliminate cu o bară oblică inversă.

Variabila Perl " " Exemple:

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

ieșire:

Tom este pisica preferată a mamei

Corzile

„$a”, „$b”, este concatenat și stocat în „$c” folosind „.” operator.

La sfarsit…

Conversia Între Numbers și șiruri:

După cum știți, Perl convertește automat între numere în șir, după cum este necesar. De unde știe Perl de ce avem nevoie acum? Acest lucru este simplu - totul depinde de operator (vom vorbi despre operatori mai târziu, acum, acceptați doar că există o mulțime de operatori, diferiți pentru numere și șiruri) Dacă un operator așteaptă un număr, Perl va folosi valoarea ca număr . Dacă un operator așteaptă un șir, Perl va folosi valoarea ca șir. Cu alte cuvinte, nu trebuie să vă faceți griji cu privire la acest tip de conversie. Exemplu scurt și totul ar trebui să fie clar:

Exemple Perl:

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

ieșire:

71

valoarea $string este convertită într-un număr întreg și adăugată la valoarea $number.

Rezultatul adunării, 71, este atribuit $result.

Domeniul de aplicare al unei variabile – Modificatori de acces

Putem declara un scalar în oriunde în program. Dar trebuie să specificați un modificator de acces

Există 3 tipuri de modificatori

  1. my
  2. local
  3. al nostru

My: Folosind aceasta, puteți declara orice variabilă care este specifică în bloc. adică în cadrul bretelor.

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

Fără ieșire

Rezultatul programului nu va fi nimic!

Tutorial PERL pentru începători - Ghid complet

În exemplul de mai sus, veți vedea că există două variabile declarate una este în interiorul blocului if ($var_2) și cealaltă este în afara blocului If ($var). Variabila, care este declarată în afara blocului, va fi accesibilă pentru if block, dar variabila care a fost declarată în interiorul if block nu va fi accesibilă programului exterior.

Local: Folosind aceasta, putem de fapt masca aceleași valori ale variabilei în valori diferite, fără a schimba efectiv valoarea inițială a variabilei, să presupunem că avem o variabilă $a căreia i se atribuie valoarea 5, puteți schimba de fapt valoarea acelei variabile prin re-declararea aceleiași variabile folosind cuvântul cheie local fără a modifica valoarea inițială a variabilei care este 5. Să vedem cum funcționează acest lucru cu un exemplu.

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

Ieșirea programului de mai sus va fi în acest mod.

local, $var = 3

global, $var = 5

În acest fel putem schimba valoarea variabilei fără a afecta valoarea inițială.

Nostru: Odată ce o variabilă este declarată cu modificatorul de acces „nostru”, aceasta poate fi utilizată în întregul pachet. Să presupunem că aveți un modul Perl sau un pachet test.pm care are o variabilă declarată cu scope our. Această variabilă poate fi accesată în orice script care va folosi acel pachet.

Dacă sunteți serios în ceea ce privește programarea în Perl, ar trebui să începeți programul cu

#!/usr/local/bin/perl

folosiți strict;

Acest lucru vă va ajuta să scrieți un cod mai bun și mai curat. „utilizați strict” activează pragma strictă, ceea ce vă va face să vă declarați variabilele cu cuvântul cheie.

Aceasta este o practică bună de programare

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

Rezultat: Eroare

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

ieșire:

10

Perl Array

Ce este Perl Array?

Un Array este un tip special de variabilă care stochează date sub forma unei liste; fiecare element poate fi accesat folosind numărul de index care va fi unic pentru fiecare element. Puteți stoca numere, șiruri de caractere, valori flotante etc. în matricea dvs. Arata grozav. Deci, cum creăm o matrice în Perl? În Perl, puteți defini o matrice folosind caracterul „@” urmat de numele pe care doriți să-l dați. Să luăm în considerare definirea unui tablou în Perl.

@matricea mea;

Acesta este modul în care definim o matrice în Perl; s-ar putea să vă gândiți cum trebuie să stocăm datele în el. Există diferite moduri de stocare a datelor într-o matrice. Aceasta depinde de modul în care îl vei folosi.

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

ieșire:

a B C D

Aceasta este o matrice cu 4 elemente în ea.

Indicele matricei începe de la 0 și se termină până la dimensiunea maximă declarată, în acest caz, dimensiunea maximă a indexului este 3.

Exemplu de matrice Perl

Exemplu de matrice Perl

De asemenea, puteți declara o matrice în modul de mai sus; singura diferență este că stochează datele într-o matrice, considerând un spațiu alb ca delimitator. Aici, qw() înseamnă cuvânt citat. Semnificația acestei funcții este de a genera o listă de cuvinte. Puteți utiliza qw în mai multe moduri pentru a declara o matrice.

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

ieșire:

abcdpqrsvxyz

Să presupunem că doriți să atribuiți o valoare lui 5th element al unui tablou, cum vom face asta.

$array [4] ='e';

Matrice secvențială

Matricele secvenţiale sunt acelea în care stocaţi datele secvenţial. Să presupunem că doriți să stocați 1-10 numere sau alfabete az într-o matrice. În loc să tastați toate literele, puteți încerca ceva ca mai jos -

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

ieșire:

12345678910

Dimensiunea matricei Perl

Avem o matrice care este deja disponibilă și nu știți care este dimensiunea matricei respective, deci care este modalitatea posibilă de a o găsi.

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

Putem obține dimensiunea unei matrice fără a folosi funcții? Da putem.

@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

ieșire:

5

5

Matrice dinamică

Metoda de mai sus de declarare a unui tablou este numită matrice statice, unde cunoașteți dimensiunea unei matrice.

Ce este Dynamic Array?

Matricele dinamice sunt cele pe care le declarați fără a specifica nicio valoare pentru ele. Deci, când mai exact stocăm valori în acea matrice? Simplu, le stocăm în timpul rulării. Iată un program simplu pentru asta.

Vom folosi câteva funcții Perl încorporate pentru a face această sarcină.

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.
}

ieșire:

Asta e

un fel de dyn

MIC

rr

y

Funcția de împărțire împarte conținutul șirului într-o matrice pe baza delimitatorului furnizat acestuia. Această funcție va elimina și delimitatorul din șir, în acest caz, este „a”;

Push, Pop, shift, unshift pentru matrice Perl:

Aceste funcții pot fi folosite în Perl pentru a adăuga/șterge elemente ale matricei.

  • Perl Push: adaugă un element de matrice la sfârșitul unui tablou existent.
  • Perl Pop: elimină ultimul element dintr-o matrice.
  • Perl Shift: elimină primul element dintr-o matrice.
  • Perl Unshift: adaugă un element la începutul unui tablou.

Funcții matrice în Perl

Să vedem un exemplu în care putem folosi funcțiile de mai jos.

@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";

ieșire:

1: Luni Mar Mier

Al doilea la apăsare: Luni Mar Mier Joi

Al 3-lea când nu se schimbă: Vin Luni Mar Mier Joi

Al 4-lea când pop: Vin Luni Mar Mier

A 5-a la schimbul: Luni Mar Mier

Perl Hashes

De ce avem nevoie de Hash?

Am învățat deja despre scalari și matrice în secțiunile anterioare.

Ce fac mai exact scalarii? Stochează doar numere întregi și șiruri de caractere.

Ce fac mai exact matricele? Este o colecție de scalari, în care accesați fiecare element al unui tablou folosind indici. Dar, este aceasta idee bună să folosiți o matrice atunci când aveți sute și mii de înregistrări? Vom uita ce indice are ce valoare. Pentru a depăși această situație avem ceva de genul perl hash.

Ce sunt hashe-urile?

Un hash poate conține, de asemenea, atât de mulți scalari cât poate conține matricea. Singura diferență este că nu avem niciun index, mai degrabă avem chei și valori. Un hash poate fi declarat, începând cu % urmat de numele hash-ului. Să vedem un exemplu cum putem defini un hash Perl și cum îl putem diferenția de matrice

Luați în considerare un exemplu de trei persoane și vârstele lor sunt reprezentate într-o matrice.

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

ieșire:

Sainath33Krishna24Shruthi25

În acest fel, este dificil să cunoaștem vârstele individuale, deoarece trebuie să ne amintim atât locațiile index ale numelui, cât și vârsta tuturor oamenilor. Poate fi simplu când ai 3 nume, dar când ai 1000 sau mai multe? Tu sti raspunsul.

Hashuri în Perl

Acest lucru îl putem depăși folosind un hash.

Exemplu de hash:

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.

ieșire:

Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi25

Acum am declarat un hash, grozav!! Dar, cum îl accesăm sau îl imprimăm? Fiecare element din hash ar trebui să fie accesat cu cheia asociată pentru care va fi atribuită o valoare. Deci, există o mapare unu-unu între fiecare cheie și valoare din hash.

Pentru a imprima vârsta oricărei persoane, trebuie doar să vă amintiți numele acelei persoane.

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

Poate v-ați întrebat de ce am folosit $hash{KeyName}, amintiți-vă că un hash este din nou o colecție de scalari. Deci, putem folosi $ care reprezintă scalar pentru a accesa fiecare element hash.

Exemplu de hash în Perl

Notă: Fiecare cheie din hash ar trebui să fie unică, altfel va suprascrie valoarea dvs., care a fost atribuită anterior.

Cum putem atribui un hash altui hash? Simplu, la fel ca noi pentru

De asemenea, putem imprima întregul hash.

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

ieșire:

Tom23

Adăugați hashuri Perl

După cum puteți vedea, avem deja un hash %newHash, iar acum trebuie să adăugăm mai multe intrări în el.

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

ieșire:

Jim25John26Harry27

Tasta Perl Delete

Poate doriți să ștergeți o intrare dintr-un hash. Așa putem face asta.

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

Delete este o funcție încorporată a Perl. Aici, vom vedea un exemplu de atribuire a unui hash unei matrice.

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

Notă: Ori de câte ori imprimați un hash sau când stocați hash într-o matrice. Ordinea poate fi întotdeauna diferită. Nu este mereu la fel.

Putem aloca unui tablou doar chei sau valori ale unui hash.

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

Pentru a elimina toate intrările din hash, putem atribui direct hash-ul la null.

%newHash=();# Aceasta va redefini hash-ul fără intrări.

Instrucțiuni condiționale Perl

Putem folosi instrucțiuni condiționale în Perl. Deci, ce sunt declarațiile condiționate? Declarațiile condiționate sunt acelea în care de fapt verificați dacă anumite circumstanțe sunt îndeplinite în codul dvs.

Gândește-te la un exemplu, cumperi niște fructe și nu-ți place că prețul este mai mare de 100 de dolari. Deci, regula aici este 100 de dolari.

Perl acceptă două tipuri de instrucțiuni condiționale; sunt dacă și dacă nu.

Perl Dacă

Dacă blocul de cod va fi executat, când condiția este adevărată.

Instrucțiuni condiționale Perl

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

ieșire:

5

Perl Dacă Altceva

Asta arată bine. Să ne gândim la o situație în care $a nu este 5.

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

ieșire:

Valoarea este 10 — FAIL

În acest fel, putem controla o singură condiție la un moment dat. Este o limitare? Nu, puteți controla și diverse condiții folosind if... elsif... else.

Perl Else Dacă

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";
}

ieșire:

Bloc elsif executat – Valoarea este 5

În cazul de mai sus, blocul elsif va fi executat deoarece $a este egal cu 5.

Ar putea exista situații în care atât blocurile de cod if și elsif vor fi eșuate. În acest scenariu, blocul de cod else va fi executat. De fapt, puteți elimina verificarea codului else dacă nu doriți să includeți.

Perl Imbricat If

În acest caz, puteți utiliza if code block într-un alt cod 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";
    }

ieșire:

În interiorul primului bloc else – valoarea este 1

Executați același cod schimbând valoarea lui $a; poti afla restul.

Perl Dacă nu

Ai deja o idee ce se întâmplă dacă (dacă condiția este adevărată, va executa blocul de cod). Cu excepția cazului în care este opusă dacă, dacă blocul de cod nu va fi executat dacă condiția este falsă.

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

ieșire:

În interiorul primului bloc else – valoarea este 1

Ghici care va fi rezultatul. Ai dreptate!!!!!. Ieșirea va fi instrucțiunea de tipărire a blocului else. Din cauza condiției în dacă blocul de cod nu este adevărat, rețineți dacă blocul nu va fi executat numai dacă condiția este falsă. Schimbați valoarea lui $a și executați codul, veți vedea diferența.

Perl Folosind if

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

ieșire:

În interiorul blocului else

Folosind dacă nu

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

ieșire:

Înăuntru, dacă nu Block

Perl Loops – Structuri de control

Perl acceptă structuri de control similare cu alte limbaje de programare. Perl acceptă patru tipuri de structuri de control pentru, foreach, while și until. Folosim aceste instrucțiuni pentru a executa în mod repetat un anumit cod.

Pentru bucla Perl

Pentru blocul de cod se va executa până când condiția este îndeplinită. Să luăm un exemplu despre cum se face bucla Perl într-o matrice.

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

ieșire:

Valoarea indicelui matricei 0 este 1

Valoarea indicelui matricei 1 este 2

Valoarea indicelui matricei 2 este 3

Valoarea indicelui matricei 3 este 4

Valoarea indicelui matricei 4 este 5

Valoarea indicelui matricei 5 este 6

Valoarea indicelui matricei 6 este 7

Valoarea indicelui matricei 7 este 8

Valoarea indicelui matricei 8 este 9

Valoarea indicelui matricei 9 este 10

Aici, în expresia pentru (), sunt incluse multe afirmații. Există un sens pentru fiecare dintre ele.

pentru ( inițializare; condiție; creștere)

Iată un alt mod de utilizare pentru.

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

ieșire:

1n

2n

3n

4n

5n

6n

7n

8n

9n

10n

Perl Foreach

Pentru fiecare declarație poate fi folosită în același mod ca for; diferența principală este că nu avem nicio verificare și creștere a stării în acest sens.

Să luăm același exemplu cu foreach perl.

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

ieșire:

Valoarea este 1

Valoarea este 2

Valoarea este 3

Valoarea este 4

Valoarea este 5

Valoarea este 6

Valoarea este 7

Valoarea este 8

Valoarea este 9

Valoarea este 10

Foreach preia fiecare element al unui tablou și atribuie acea valoare lui $var pentru fiecare iterație. De asemenea, putem folosi $_ pentru același lucru.

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

ieșire:

Valoarea este 1

Valoarea este 2

Valoarea este 3

Valoarea este 4

Valoarea este 5

Valoarea este 6

Valoarea este 7

Valoarea este 8

Valoarea este 9

Valoarea este 10

Acest lucru arată bine pentru accesarea matricelor. Ce zici de hashuri, cum putem obține chei hash și valori folosind foreach?

Putem folosi foreach pentru a accesa cheile și valorile hash-ului prin bucla.

bucla pentru în Perl

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

ieșire:

băutură conținând un drog

Tom

Oală de noapte

S-ar putea să vă întrebați de ce am folosit Keys în foreach(). Keys este o funcție încorporată a lui Perl, unde putem accesa rapid cheile hash-ului. Ce zici de valori? Putem folosi funcția values ​​pentru a accesa valorile hash-ului.

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";
}

ieșire:

valoarea este 24

valoarea este 23

valoarea este 25

Perl în timp ce

Bucla Perl While este o structură de control, în care blocul de cod va fi executat până când condiția este adevărată.

Blocul de cod va ieși numai dacă condiția este falsă.

Să luăm un exemplu pentru bucla Perl While.

While buclă în Perl

Iată o problemă, care va necesita introducerea utilizatorului și nu va ieși până la numărul furnizat ca „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"

ieșire:

Ghiciți un număr între 1 și 10

9

Ghiciți un număr între 1 și 10

5

Ghiciți un număr între 1 și 10

7

Ai ghicit numărul norocos 7

În exemplul de mai sus, condiția while nu va fi adevărată dacă introducem o altă intrare decât „7”.

Dacă vedeți cum funcționează while aici, blocul de cod se va executa numai dacă condiția într-un timp este adevărată.

Perl do-while

Bucla Do while se va executa cel puțin o dată chiar dacă condiția din secțiunea while este falsă.

Să luăm același exemplu folosind do while.

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

ieșire:

10

9

8

7

6

5

4

3

2

1

Acum valoarea este mai mică de 1

Perl până când

Până când blocul de cod este similar cu excepția cazului într-o declarație condiționată. Aici, blocul de cod se va executa numai dacă condiția până la bloc este falsă.

Să luăm același exemplu pe care l-am folosit la un timp.

Iată o problemă, care va necesita intrare de la utilizator și nu va ieși până când numele furnizat ca altul decât „sai”.

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

ieșire:

Introdu orice nume sai

Perl până la:

Do until poate fi folosit doar atunci când avem nevoie ca o condiție să fie falsă și ar trebui să fie executată cel puțin o dată.

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

ieșire:

Introdu orice nume Howard

Introdu orice nume Sheldon

Introdu orice nume sai

Executați coduri de exemplu while, do-while, until și do-until pentru a vedea diferența.

Perl OperaTdR

Ce Este Operator?

Operatori în limbajul computerului indică o acțiune care poate fi efectuată asupra unui set de variabile sau valori pe care computerul le poate înțelege. Perl a încorporat majoritatea Operatori din limbajul C. Perl are mulți operatori în comparație cu alte limbaje de programare. Operatorii sunt clasificați ca operatori aritmetici, logici, relaționali și de atribuire.

Aritmetică Operators:

Operatorii aritmetici sunt cei care pot fi utilizați pentru a efectua unele operații matematice de bază. Acești operatori aritmetici sunt operatori binari în care avem nevoie de două argumente pentru a efectua o operație de bază. De asemenea, putem folosi operatori unari pentru alte operații de bază; puteți vedea diferența în exemple de mai jos.

OperaTdR Descriere Exemplu

+

Operație de adunare utilizată pentru adăugarea a două valori sau variabile

deţinând valori

$x=5+6; # sau

$y=6;

$z=$x+$y;

-

Operator de scădere utilizat pentru scăderea a două valori sau variabile care dețin valori

$x=6-5; # sau

$y=6;

$z=$x-$y;

*

Operator de multiplicare utilizat pentru înmulțirea a două valori sau variabile care dețin valori

$x=6*5; # sau

$y=6;

$z=$x*$y;

/

Operatorul de divizare utilizat pentru împărțirea a două valori sau variabile care dețin valori

$x=36/6; # sau

$y=6;

$z=$x/$y;

**

Operatorul exponențial utilizat pentru a furniza exponent și a obține valoarea.

Ex: 22 = 43 = 27

$x=5**5; # sau

$x=4;

$y=2;

$z=$x**$y;

%

Operatorul de modul folosit pentru a obține memento în timpul împărțirii a două valori sau variabile care dețin valori

$x=5%2; # sau

$x=10;

$y=2;

$z=$x % $y;

++

Operator de adăugare unar pentru a incrementa valoarea unei variabile cu 1

$x=5;

$x++;

Or

++$x;

-

Operatorul de scădere unară pentru a reduce valoarea unei variabile cu 1

$x=5;

$x–; # post decrement

Or

–$x;# înainte de decrement

Exemplu pentru a finaliza toate operațiunile de mai sus.

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");

ieșire:

Adunarea dintre 10 și 2 este 12

Sub 10 și 2 este 8

Mul de 10 și 2 este 20

Div de 10 și 2 este 5

Exp de 10 și 2 este 100

Mod-ul 10 și 2 este 0

Cesiune Operators:

Operatorii de atribuire pur și simplu atribuie valori variabilelor, dar mai este un lucru pe care trebuie să-l reținem aici, operatorii de atribuire vor efectua și operații aritmetice și vor atribui noua valoare aceleiași variabile pe care este efectuată operația.

OperaTdR Descriere Exemplu

+=

Operatorul de adăugare utilizat pentru adăugarea și atribuirea valorii aceleiași variabile

$x=4;

$x+=10;

-=

Operatorul de scădere utilizat pentru scăderea și atribuirea valorii aceleiași variabile

$x=4;

$x-=10;

*=

Operator de multiplicare utilizat pentru adăugarea și atribuirea valorii aceleiași variabile

$x=4;

$x*=10;

/=

Operatorul de divizare utilizat pentru împărțirea și atribuirea valorii aceleiași variabile

$x=4;

$x/=10;

**=

Operatorul exponențial utilizat pentru obținerea exponentului și atribuirea valorii aceleiași variabile

$x=4;

$x**=10;

%=

Operator de modul utilizat pentru obținerea unui memento în timpul împărțirii și atribuirea valorii aceleiași variabile

$x=10;

$x%=4;

Exemplu pentru a finaliza toate operațiunile de mai sus.

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");

ieșire:

Adăugați = 15

Sub= 10

Mul = 50

Div = 10

logic și relațional Operators:

Perl folosește operatori logici pentru a compara numere și șiruri. De cele mai multe ori operatorii logici sunt utilizați în instrucțiunile condiționate.

logic și relațional Operators în Perl

logic și relațional Operators în Perl

OperaTdR Descriere

==sau echivalentul

Operator folosit pentru a verifica dacă ambele variabile sunt egale

!=Sau ne

Operator folosit pentru a verifica dacă ambele variabile nu sunt egale

> sau gt

Operator folosit pentru a verifica dacă

A este mai mare decât B

<or lt

Operator folosit pentru a verifica dacă

A este mai mic decât B

>=sau ge

Operator folosit pentru a verifica dacă

A este mai mare sau egal cu B

<=sau le

Operator folosit pentru a verifica dacă

A este mai mic sau egal cu B

|| sau sau

Operator folosit pentru a verifica fie A sau B este valoarea de păstrare

&&sau și

Operator folosit pentru a verifica atât A cât și B are valoarea de păstrare

Să luăm un exemplu în care putem explica toate scenariile.

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");
}

ieșire:

Adevărat - egal cu 5 și 5

Adevărat - nu este egal cu 6 și 7

Adevărat - 7 mai mare decât 6

Adevărat - 6 mai puțin decât 7

Adevărat - 6 mai puțin decât 7

Adevărat - 7 mai mare decât 6

Puteți vedea exemple de operatori logici în secțiunile ulterioare.

Variabile speciale Perl

Ce este Perl Special Variables?

Variabilele speciale în Perl sunt cele care au o anumită semnificație predefinită. Aceste variabile sunt desemnate fie cu nume real, fie cu simboluri de punctuație. Avem o variabilă specială pentru toate variabilele suportate de Perl, cum ar fi variabile speciale scalare, variabile speciale Array, variabile speciale hash. Majoritatea variabilelor speciale pe care le folosim sunt scalari.

Când vrem să folosim variabila specială cu numele ei, atunci trebuie să încărcăm un modul Perl „utilizați engleza”, pentru a spune explicit interpretului Perl că vom folosi variabile speciale folosind numele său.

Variabile speciale scalare

Variabil Descriere

$_$ARG

Aceasta este variabila implicită care stochează valorile curente.

$0 sau $PROGRAM_NAME

Stochează numele fișierului scriptului Perl.

$/

Separatorul de înregistrare de intrare, acesta are o valoare implicită de „\n”, care este caracterul de nouă linie

$.

Deține numărul de linie curent al fișierului care este citit

$,

Separator de câmpuri de ieșire, acesta este utilizat în principal de instrucțiunea print(). În mod implicit, valoarea acesteia este setată la 0, putem schimba valoarea acestei variabile.

$\

Separator de înregistrare de ieșire, valoarea acestei variabile va fi goală; îi putem atribui orice valoare, care va fi folosită de instrucțiunea print() în timp ce imprimăm rezultatul.

$#

Această variabilă este utilizată pentru formatul de ieșire în timpul tipăririi numerelor.

$%$FORMAT_PAGE_NUMBER

Va păstra numărul de pagină curent al fișierului citit.

$=$FORMAT_LINES_PER_PAGE

Va păstra lungimea curentă a paginii a fișierului citit.

$-$FORMAT_LINES_LEFT

Reține valoarea numărului de linii rămase de imprimat din pagină.

$~$FORMAT_NAME

Format Nume: Deține în mod implicit formatul ieșirii selectate curent, numele handler-ului fișierului.

$^$FORMAT_TOP_NAME

Deține valoarea formatului de antet al handler-ului fișierului, valoarea implicită va fi _TOP urmată de numele handle-ului fișierului.

$|$OUTPUT_AUTOFLUSH

Valoarea implicită este zero; aceasta este folosită pentru a goli buffer-ul de ieșire după fiecare write() sau print().

$$

Va păstra numărul procesului de rulare al interpretului Perl.

$?

Cod de stare: Conductă și apel de sistem. Starea de revenire a comenzii executate.

$&$PORIT

Folosit în expresiile regulate, acesta va reține un șir al ultimului model de potrivire reușită.

$`$Premeci

Folosit în expresiile regulate, acesta va menține șirul precedat de ultima potrivire reușită a modelului.

$'$POSTMECI

Folosit în expresiile regulate, acesta va deține un șir urmat de ultima potrivire reușită a modelului.

$+$LAST_PAREN_MATCH

Ține șirul ultimei paranteze care se potrivește cu ultimul model de căutare.

$

1 USD, 2 USD, 3 USD... Menține valorile modelului potrivite în ordine.

$[

Primul index: Array, un subșir.

$]

O versiune de Perl.

$”

Separatorul folosit pentru elementele listei, valoarea implicită este un spațiu alb.

$;

Separator de indice utilizat în tablourile multidimensionale

$!

În context numeric, tipărește numărul erorii. În contextul șirului, tipăriți eroarea.

$@

Va păstra informațiile despre eroarea de sintaxă, utilizate atunci când se utilizează eval().

$<

Deține UID-ul real (ID-ul utilizatorului) al procesului care rulează scriptul.

$>

Deține UID-ul efectiv al procesului care rulează scriptul.

$(

Deține GID-ul real (ID de grup) al procesului care rulează scriptul.

$)

Deține GID-ul efectiv al procesului care rulează scriptul.

$^D$DEBUGARE

Deține valoarea curentă a steagurilor de depanare.

$^C

Menține valoarea curentă a steagului atunci când este utilizat comutatorul de linie de comandă –c.

$^F

Descriptorul maxim al fișierului de sistem, valoarea implicită, este setat la 2

$^I$INPLACE_EDIT

Deține valoarea comutatorului de linie de comandă –i.

$^M

Pool-ul de memorie special poate fi utilizat atunci când scriptul Perl moare cu o eroare de memorie lipsită.

$^O$OSNAME

Operainformațiile de sistem sunt stocate. „Linux” pentru sistemele Linux, „mswin32” pentru Windows sisteme.

$^T$BASETIME

Timpul în care scripturile rulează în secunde.

$^W$AVERTISMENT

Valoarea curentă a comutatorului de linie de comandă –w. Comutator de avertizare.

$ARGV

Numele fișierului curent, când se folosește <>.

Variabile speciale ale matricei:

Variabil Descriere

@INC

Conține o listă de căi, unde modulele sau scripturile bibliotecii Perl pot fi analizate în timp ce se execută scriptul curent. Acest @INC este folosit de utilizare și necesită instrucțiuni pentru a căuta acele căi pentru modulele bibliotecii.

@ARGV

Stochează argumentele liniei de comandă transmise.

@_

Folosit în subrutine, în timp ce trece parametrii la subrutine.

@F

Aceasta este matricea în care sunt stocate liniile de intrare când auto split –a (este folosit comutatorul din linia de comandă).

Variabile speciale Hash:

Variabil Descriere

%INC

Numele fișierului va fi cheile; valorile vor fi calea către acele fișiere. Folosit de do, use and require.

%ENV

Variabilele de mediu ale sistemului.

%SIG

Signalmanipulatorul lui.

Expresia regulată Perl

Ce este expresia regulată?

Expresia regulată Perl este suficient de puternică în potrivirea tiparelor șirurilor dintr-o declarație sau un grup de instrucțiuni. Expresiile regulate sunt folosite mai ales în analizarea textului, potrivirea modelelor și multe altele pe baza cerințelor. Avem anumiți operatori, care sunt utilizați în mod special de legarea modelului de expresii regulate =~ și !~, Aceștia sunt operatori de testare și de atribuire.

Expresie uzuala Operatori

Expresie uzuala Operators în Perl

Expresie uzuala Operators în Perl

  • Perl Match — m//
  • Substitut Perl – s///
  • Transliterat Perl – tr///

Înainte de a merge mai departe, trebuie să știm câteva lucruri despre expresia regulată; există anumite lucruri, cum ar fi caracterele meta, metacaractere în sintaxa Perl Regex.

Mangal Sens

\

Special sau citat

*

Potriviți 0 sau mai multe caractere

+

Potriviți 1 sau mai multe caractere

?

Potriviți 0 sau 1 caracter

|

Poate fi folosit pentru a potrivi modele alternative

()

Folosit pentru a stoca modelul potrivit

[]

Setul de caractere poate fi transmis. Folosit special pentru numere și alfabete.

{}

Folosit pentru a furniza numărul de timp în care poate fi efectuată meciul.

^

Începutul șirului

$

Sfârșitul șirului

\w

Folosit pentru a potrivi un singur caracter sau cuvânt care poate fi alfanumeric, inclusiv „_”

\W

Potriviți orice altceva decât alfanumeric

\s

Folosit pentru a potrivi spațiile albe

\S

Potriviți orice altceva decât spațiul alb

\d

Potriviți numerele. Nu valori zecimale și valori negative

\D

Potriviți orice altceva decât numere.

\t

Potriviți spațiul pentru file

\n

Potriviți noua linie

Cele de mai sus sunt setul de caractere care pot fi folosite în timpul potrivirii modelelor.

Să vedem câteva exemple.

Luați în considerare o situație în care utilizatorul oferă o anumită intrare în timpul execuției scriptului și dorim să verificăm dacă utilizatorul a introdus un nume ca intrare sau nu. Trebuie să scriem o sintaxă a expresiei regulate pentru a vă extrage numele și a imprima același lucru.

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

ieșire:

Model găsit

Aici, am scris expresia regulată ca /.*(Guru99).*/.* potrivește toate caracterele dintr-un șir. A '.' în perl regex match se referă la orice caracter, inclusiv spațiu.

Să vedem cum exact putem construi un Regex.

Luați în considerare un exemplu de șir de mai multe cuvinte și cifre și simboluri speciale precum acesta „Bună tuturor, acesta este numărul meu: +91-99298373639”;

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

Cuvânt spațiu cuvânt spațiu cuvânt spațiu cuvânt spațiu cuvânt spațiu cuvânt spațiu caracter special : spațiu caracter special + cifre caracter special – cifre.

Perl Match Operatori

Operatorii de potrivire sunt utilizați pentru a potrivi un șir în cadrul unei instrucțiuni sau într-o variabilă.

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

ieșire:

adevărat

Acest cod mic va afișa „adevărat”, deoarece potrivirea modelului perl identifică șirul într-o variabilă. Practic, Perl caută textul furnizat în // de-a lungul întregului șir, chiar dacă găsește într-un singur loc, va returna „adevărat”. Modelul poate fi oriunde în variabilă. Putem încerca să înlocuim =~ cu !~ pentru a vedea diferența dintre acești doi operatori.

Înlocuire Perl OperaTdR

Acest operator poate fi folosit pentru căutarea și înlocuirea oricărui caracter fie cu nul, fie cu alt caracter.

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

ieșire:

violoncel ce mai faci

Notă: De fapt, putem folosi orice șir de potrivire a modelului, așa cum am făcut mai devreme și în acest operator de înlocuire. Aici am folosit „gi”, g-la nivel global, i-ignore majuscule.

Traducere Perl OperaTdR

Acest lucru este similar cu Substituția, dar nu folosește nicio expresie regulată perl, mai degrabă putem trece direct valoarea sau un cuvânt pe care dorim să-l înlocuim.

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

ieșire:

Bună vacă ești

I/O fișier Perl

Perl a fost conceput pentru a manipula fișierele și operațiunile I/O în mod eficient. Principalul avantaj al Perl este în analiza și manipularea fișierelor. Există multe funcții încorporate și operatori utilizați în timpul manipulării fișierelor în Perl.

Practic, operațiunile de fișiere care sunt efectuate cu Perl se fac folosind FILEHANDLE. Trebuie să definim acest FILEHANDLE în timpul deschiderii unui fișier pentru citire sau scriere.

În acest tutorial de script Perl, veți învăța-

Perl Deschideți fișierul

Putem deschide un fișier folosind funcția open() disponibilă în Perl.

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

Acum am deschis un fișier, acum apare o întrebare. Este pentru citit sau pentru scris?

Fișier de citire Perl și fișier de scriere Perl

Perl are anumite moduri, care trebuie folosite pentru a citi, scrie sau atașa un fișier.

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");

Câteva exemple pentru citirea unui fișier:

Citirea fișierului în Perl

Luați în considerare că avem un fișier perl cu numele file.txt și are câteva rânduri de text în el. Trebuie să deschidem acest fișier și să imprimăm la fel.

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;

Aceasta va imprima conținutul fișierului pe ecranul de ieșire.

Acum, vom scrie un program pentru a crea și a scrie date într-un fișier perl.

Scrierea fișierului în Perl

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

Aceasta va scrie intrarea furnizată în timpul rulării și va crea un fișier test.txt care va avea intrare.

Modul de mai sus va încerca întotdeauna să creeze un fișier numit test.txt și va scrie intrarea în fișier; vom scrie la fel pentru a adăuga fișierul.

Operație de adăugare a fișierelor în Perl

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

<

Citeste

+<

Citește și scrie

>

Creează, scrie și trunchiază

+>

Citiți, scrieți, creați și trunchiați

>>

Scrie, anexează și creează

+>>

Citiți, scrieți, anexați și creați

Acum că trebuie să vedem cum să citim, să scriem și să atașăm fișiere folosind exemple de bază.

Vom mai vedea câteva exemple și alte funcții care vă ajută să înțelegeți mai multe despre fișiere.

Perl Tell

Această metodă va returna poziția curentă a FILEHANDLER în octeți dacă este specificată altfel va considera ultima linie ca poziție.

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

Perl Seek

Funcția de căutare este similară cu apelul de sistem fseek. Această metodă este utilizată pentru a poziționa indicatorul fișierului într-o locație specifică prin specificarea octeților urmați fie de începutul indicatorului de fișier, fie de sfârșitul indicatorului de fișier.

seek FH, bytes, WHENCE;

WHENCE este poziția pointerului fișierului pentru a începe. Zero îl va seta de la începutul fișierului.

Exemplu: Lăsați input.txt să aibă câteva date precum „Bună ziua, aceasta este lumea mea”.

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

ieșire:

aceasta este lumea mea

Perl Deconectare

Deconectarea este folosită pentru a șterge fișierul.

unlink("filename or complete file path");

Gestionarea directoarelor:

De asemenea, putem gestiona directoare prin care putem gestiona mai multe fișiere.

să vedem cum să deschidem un director. Putem folosi metodele opendir și 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);

Aceasta va imprima toate fișierele disponibile în acel director.

Teste de fișiere Perl și semnificația lor

-r

Pentru a verifica dacă fișierul/directorul poate fi citit de utilizatorul/grupul curent

-w

Pentru a verifica dacă fișierul/directorul poate fi scris de utilizatorul/grupul curent

-x

Pentru a verifica dacă Fișierul/directorul este executabil de către utilizatorul/grupul curent

-o

Pentru a verifica dacă fișierul/directorul este deținut de utilizatorul curent

-R

Pentru a verifica dacă fișierul/directorul poate fi citit de către acest utilizator/grup real

-W

Pentru a verifica dacă fișierul/directorul poate fi scris de către acest utilizator/grup real

-X

Pentru a verifica dacă fișierul/directorul este executabil de către acest utilizator/grup real

-O

Pentru a verifica dacă fișierul/directorul este deținut de acest utilizator real

-e

Pentru a verifica dacă numele fișierului/directorului există

-z

Pentru a verifica dacă fișierul există și are dimensiunea zero (întotdeauna fals pentru directoare)

-f

Pentru a verifica dacă Entry este un fișier simplu

-d

Pentru a verifica dacă Entry este un director

-l

Pentru a verifica dacă Entry este o legătură simbolică

-S

Pentru a verifica dacă Entry este un socket

-p

Pentru a verifica dacă Entry este o conductă numită (un „FIFO”)

-b

Pentru a verifica dacă Entry este un fișier special bloc (cum ar fi un disc montabil)

-c

Pentru a verifica dacă Entry este un fișier cu caractere speciale (cum ar fi un dispozitiv I/O)

-u

Pentru a verifica dacă fișierul sau directorul este setuid

-g

Pentru a verifica dacă fișierul sau directorul este setgid

-k

Pentru a verifica dacă fișierul sau directorul are setat bitul lipicios

-t

Handle-ul de fișier dat este un TTY (ca prin funcția de sistem isatty(), numele fișierelor nu pot fi testate prin acest test)

-T

Pentru a verifica dacă Fișierul arată ca un fișier „text”.

-B

Pentru a verifica dacă Fișierul arată ca un fișier „binar”.

-M

Pentru a verifica vârsta de modificare (măsurată în zile) a fișierului

-A

Pentru a verifica vârsta de acces (măsurată în zile) a fișierului

-C

Pentru a verifica vârsta modificării Inode (măsurată în zile) a fișierului

Subrutină Perl

Ce este Subroutine?

Subrutine sunt similare cu funcțiile din alte limbaje de programare. Am folosit deja câteva funcții încorporate precum print, chomp, chop etc. Ne putem scrie propriile subrutine în Perl. Aceste subrutine pot fi scrise oriunde în program; este de preferat să plasați subprogramele fie la începutul, fie la sfârșitul codului.

Subrutină în PERL

Exemplu de subrutine

sub subroutine_name 
{
	Statements…;    # this is how typical subroutines look like.
}

Acum că știm cum să scriem o subrutină, cum o accesăm?

Trebuie să accesăm sau să apelăm o subrutină folosind numele subrutinei prefixat cu simbolul „&”.

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

Transmiterea parametrilor Perl și a argumentelor Perl

Subrutinele sau funcția perl sunt scrise pentru a plasa codul reutilizabil în ele. Majoritatea codului reutilizabil necesită ca parametrii să fie transferați subrutinei. Aici, vom afla cum putem transmite argumente subrutinei.

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.

ieșire:

3 este valoarea transmisă

@_ este o variabilă matrice specială care stochează argumentele transmise subrutinelor.

Perl Shift

De asemenea, putem folosi cuvântul cheie „shift” care schimbă câte un parametru la o variabilă sau $_[0],$_[1]... care este un element individual al matricei @_

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

ieșire:

salut este trecut

Subrutinele sunt de obicei folosite în programarea orientată pe obiecte și, de asemenea, în locuri în care este posibil să aveți mai mult cod reutilizabil de plasat.

Funcționalitatea principală a subrutinelor este de a face o anumită sarcină și de a returna rezultatul codului reutilizabil.

Tutorial PERL pentru începători - Ghid complet

Putem returna o valoare din subrutine folosind cuvântul cheie return.

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

ieșire:

11

$rezultatul va păstra valoarea adăugată a $a și $b.

De asemenea, putem trece hashuri și matrice direct subrutinei.

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

ieșire:

1a2b

De asemenea, putem returna un hash sau o matrice.

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;

ieșire:

În interiorul subrutinei2b1aDupă apelul subrutinei2b1a

Formatul Perl

Perl are un mecanism prin care putem genera rapoarte. Folosind această funcție, putem face rapoarte exact așa cum ne dorim în timp ce imprimăm pe ecranul de ieșire sau într-un fișier. Un format simplu poate fi scris folosind funcțiile printf sau sprintf disponibile în Perl.

printf "%05d\n", 30;

Aceasta va include zerouri înaintea numărului 30, care face un număr total de cifre până la 5. Același lucru poate fi folosit pentru sprintf.

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

Folosind printf și sprintf, putem obține majoritatea formatelor Perl. În cazul rapoartelor, va fi dificil de implementat.

Formatul Perl

Exemplu de raport:

================================================== =========================
Nume Adresă Vârsta Telefon
================================================== =========================
Krishna Chennai 24 929309242
Shruthi Chennai 24 929309232

Cele de mai sus sunt un exemplu de rapoarte pe care trebuie să le imprimăm în același mod în Perl. Acest lucru poate fi realizat folosind perl printf și perl sprintf. Poate fi implementat eficient folosind formatul.

Un format poate fi declarat în modul de mai jos.

format FORMATNAME=FORMATLIST.

Aici, vom folosi o anumită metodă de scriere pentru a tipări datele pe ecranul de ieșire sau în fișier.

Simbol Descriere

@

Folosit pentru a reprezenta începutul deținătorului câmpului

>

Alinierea la dreapta a textului

<

Alinierea la stânga a textului

|

Alinierea la centru

#

Numeric dacă sunt furnizate multiple #. Se presupune ca un comentariu dacă este furnizat un singur #

.

Punct zecimal

^

Suportul de început al câmpului poate fi folosit și pentru mai multe linii și, de asemenea, pentru înfășurarea cuvintelor

~

Linia ar trebui să fie goală dacă variabila este goală

@*

Mai multe linii.

($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 
.

Executați codul pentru a vedea rezultatul.

Folosim simbolul @ pentru a specifica începutul deținătorului câmpului sau al șirului, „<” fiecare caracter.

Folosim STDOUT pentru a imprima pe ieșirea standard. Putem schimba acest lucru în handler de fișiere pe care îl folosim pentru a scrie date în fișier.

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

Putem înlocui „<” cu „>” sau „|” pentru a schimba alinierea textului. STDOUT_TOP este folosit pentru a proiecta antetul formatului. Putem folosi același lucru cu gestionarea fișierelor folosind FH_TOP (FH este gestionarea fișierului). Acest lucru va scoate formatul în fișierul pe care îl lucrăm pe.

Standarde de codare Perl

Fiecare programator va avea propriul simț al scrierii codului folosind anumite standarde; aceste standarde ar trebui să fie suficient de familiare pentru ca alți programatori să poată înțelege și sprijini codul în mod corespunzător.

Standarde de codare în Perl

Standarde de codare în Perl

Scrierea codului este simplă și ușoară. Problema apare atunci când trebuie întreținută în etapele ulterioare. În timpul scrierii codului, trebuie respectate liniile directoare adecvate și standardele de codare. De asemenea, Perl definește anumite standarde care vor fi utile programatorilor pentru a scrie cod. Este recomandabil să încărcați „modulul strict” și „modulul de avertizare” în timp ce scrieți codul. Fiecare dintre aceste module are propria sa importanță. Strict ne va face să declarăm variabila înainte de a folosi și, de asemenea, va spune dacă există vreun cuvânt gol în codul dvs. Modulul de avertismente poate fi folosit alternativ prin trecerea opțiunii „-w” interpretului Perl în shebang. Avertismentele vor fi tipărite pe ecranul de ieșire.

#!/usr/bin/perl –w

Mai jos sunt câteva liste de standarde.

  • Utilizați modulul „strict” și „avertismente”.
  • Eliminați variabila, care nu este utilizată.
  • Numele variabilelor ar trebui să fie înțelese de alți utilizatori. Ex: $nume, @fileData etc.
  • Documentația este necesară în timpul codificării unui script.
  • Nu codificați nicio valoare, mai degrabă încercați să le preluați dinamic sau cereți utilizatorului să le introducă în timpul rulării (calea fișierului, numele fișierelor).
  • Maximizați reutilizarea codului. Încercați să puneți codul reutilizabil în subrutine.
  • Adică, numele complete ar trebui date pentru subrutine.
  • Subrutinele trebuie scrise cu comentarii și documentație corespunzătoare.
  • Inițializați întotdeauna variabilele.
  • Verificați întotdeauna codurile de returnare pentru apelurile de sistem. Deschiderea unui fișier se poate întâmpla sau nu, având un cod de returnare aici va afișa starea de eroare dacă fișierul nu există.

    Ex: deschis(FH,

  • Subrutina ar trebui să returneze întotdeauna o valoare.
  • Deschide creț în aceeași linie.
  • O singură linie BLOCK poate fi plasată într-o singură linie cu ondulat.
  • Utilizați etichete în timpul LOOP-urilor, ar fi ușor să ieșiți din buclă ori de câte ori este necesar.
  • Folosiți sublinierea în timp ce frazele lungi de cuvinte sunt scrise ca nume de variabilă sau subrutină.
  • Încercați să utilizați expresii regex simple în timpul codificării.

Exemplu perfect cu standarde de codare:

#######################################################################
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

Gestionarea erorilor Perl

Ce este o excepție?

O excepție este un eveniment care are loc în timpul execuției programului și care va suspenda sau închide programul dumneavoastră.

Gestionarea erorilor

Gestionarea erorilor este una de care fiecare programator trebuie să aibă grijă în timpul programării. Perl oferă, de asemenea, tehnici de tratare a erorilor cu ajutorul cărora le putem capta erorile și le putem gestiona în consecință.

Tratarea erorilor în Perl

Tratarea erorilor în Perl

Există multe modalități de a verifica dacă există erori în program. Trebuie să examinăm codurile de returnare ale funcției pe care o folosim. Dacă reușim să gestionăm corect acele coduri de returnare, atunci cea mai mare parte a gestionării erorilor poate fi realizată.

Ce se va întoarce în cazul apelurilor de sistem?

În cazul apelurilor de sistem, starea de returnare va fi stocată în două variabile speciale $? Și $!

$! – Acest lucru va prinde numărul de eroare sau numărul de eroare asociat cu mesajul de eroare.

$? – Aceasta va menține funcția return status system().

Folosind operatorul Perl sau logic

Putem folosi logic sau operator pentru gestionarea erorilor în timpul utilizării apelurilor de sistem.

ex:

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

Acest lucru va deschide fișierul în modul de citire dacă fișierul există.

Ce se întâmplă dacă fișierul lipsește?

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

Perl Eval

Funcția Eval poate gestiona erorile fatale, erorile de timp de compilare, erorile de rulare și acele erori care termină codul la un moment dat.

Funcția Perl Eval poate avea un bloc de cod sau o expresie. Evals consideră tot ce este plasat în el ca pe un șir.

Luați în considerare o situație de apelare a unei subrutine care nu este definită în script. În această situație, scriptul se termină afirmând „subrutină nedefinită &XYZ, această eroare poate fi gestionată în funcția eval.

Există multe utilizări ale blocului evals; o astfel de utilizare este atunci când dorim să încărcăm modulul care este specific sistemului de operare în timpul rulării.

Ex: Împărțirea la zero provoacă o eroare fatală; pentru a gestiona acest lucru putem plasa codul în blocul evals.

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

ieșire:

eroare de sintaxă la C:\Users\XYZ\Text.pl linia 8, lângă „)

{“

Execuția C:\Users\XYZ\Text.pl a fost întreruptă din cauza erorilor de compilare.

Exemplu: eval folosind instrucțiunea perl die.

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

ieșire:

Prins: mor la subtest

Folosind Perl Try

Perl nu acceptă blocuri try, catch și în final cod ca alte limbaje de programare. Le putem folosi în continuare încărcând un modul extern Perl.

folosește Try::Tiny;

Folosind acest lucru, vă putem plasa codul în blocul de încercare și putem detecta eroarea din blocul de avertizare.

În loc de $@ folosit în eval Try::Tiny folosește $_.

# gestionează erorile cu un catch handler

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

Folosind in sfarsit.

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

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

ieșire:

foo la C:\Users\XYZ\Text.pl linia 4.

Putem folosi try, catch și în sfârșit în acest fel.

încercați { # declarație }

catch {# declarație }

în cele din urmă { # statement };

Or

try 
{ 
# statement 
} 
finally 
{ 
# statement 
};

ieșire:

Or

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

ieșire:

Programare Perl Socket

Ce este o priză?

Tutorial PERL pentru începători - Ghid complet

Priza este un mediu prin care două computere pot interacționa într-o rețea folosind adresa și porturile de rețea.

Să presupunem că A (Server) și B (Client) sunt două sisteme, care trebuie să interacționeze unul cu celălalt folosind Socket-uri pentru rularea unor programe.

Pentru a implementa acest lucru, trebuie să creăm socket-uri atât în ​​A (Server) cât și în B (Client), A va fi în starea de recepție și B va fi în starea de expediere.

A (Server):

Aici, serverul dorește să primească o conexiune de la B (Client) și să execute unele sarcini și să trimită rezultatul înapoi către B (Client). Când executăm codul, sistemul de operare din A încearcă să creeze un socket și leagă un port la acel socket. Apoi va asculta de la expeditor care este B.

B (Client).

Aici, clientul dorește să trimită un program din sistemul său către A (Server) pentru procesare. Când executăm codul, sistemul de operare din B încearcă să creeze un socket pentru comunicarea cu A (Server), B trebuie să specifice adresa IP și numărul portului A la care B dorește să se conecteze.

Dacă acest lucru merge bine, ambele sisteme vor interacționa pentru a schimba informații printr-un singur port. Perl acceptă și programarea socketului.

Perl are un API nativ prin care pot fi implementate socket-uri. Pentru a fi ușor, există multe module CPAN prin care scriem programe socket.

Operațiuni cu serverul:

  • Creați socket
  • Legați priza cu adresa și portul
  • Ascultă socket-ul de pe adresa respectivă a portului
  • Acceptați conexiunile client care încearcă să se conecteze folosind portul și IP-ul serverului
  • Efectuați operațiuni

Client Operaacțiuni:

  • Creați socket
  • Conectați-vă la server folosind adresa portului său
  • Efectuați operațiuni

Client server Operațiuni în Perl

socket.io

Acesta este un modul pentru programarea socketului, care se bazează pe programarea orientată pe obiecte. Acest modul nu acceptă tipul de rețea INET utilizat în rețele.

IO::Socket::INET:

Acest modul acceptă domeniul INET și este construit pe IO::Sockets. Toate metodele disponibile în IO::Sockets sunt moștenite în modulul INET.

Client și server folosind protocolul TCP:

TCP este un protocol orientat spre conexiune; vom folosi acest protocol pentru programarea socketului.

Înainte de a continua, să vedem cum putem crea un obiect pentru modulul IO::Socket::INET și să creăm 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";

Noua metodă din modulul IO::Socket::INET acceptă un hash ca parametru de intrare în subrutină. Acest hash este predefinit și trebuie doar să furnizăm valorile cheilor pe care dorim să le folosim. Există o listă de chei utilizate de acest hash.

PeerAddr

Adresă gazdă de la distanță

PeerHost

Sinonim pentru PeerAddr

PeerPort

Port la distanță sau serviciu

LocalAddr

Adresă de legare a gazdei locale

Gazdă locală

Sinonim pentru LocalAddr

Local Port

Port de legare a gazdei locale

Proto

Numele protocolului (sau numărul)

Tip

Tipul soclului

Asculta

Dimensiunea cozii pentru ascultare

ReutilizareAddr

Setați SO_REUSEADDR înainte de legare

Reutilizare

Setați SO_REUSEADDR înainte de legare

ReutilizațiPort

Setați SO_REUSEPORT înainte de legare

Difuza

Setați SO_BROADCAST înainte de legare

Pauză

Valoarea timeout pentru diferite operațiuni

MultiHomed

Încercați toate adresele pentru gazde multihomed

Blocarea

Stabiliți dacă conexiunea va fi modul de blocare

Server.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);

Notă:

În programarea socketului, va trebui să executăm mai întâi Server.pl și apoi client.pl individual în diferite prompturi de comandă dacă rulăm pe gazda locală.

Ce este modulele și pachetele Perl

Modulele și pachetele sunt strâns legate între ele și sunt independente. Pachetul: Un pachet Perl este cunoscut și sub numele de spațiu de nume și are toate variabilele unice utilizate, cum ar fi hash-uri, matrice, scalari și subrutine. Modul: Modulul este o colecție de cod reutilizabil, în care scriem subrutine în el. Aceste module pot fi încărcate în programe Perl pentru a utiliza subrutinele scrise în acele module.

Ce sunt modulele Perl?

Modulele standard vor fi instalate în timpul instalării Perl pe orice sistem. CPAN: Perl cuprinzător Archive Network – Un depozit global de module Perl. Modulele noastre Perl personalizate, care pot fi scrise de noi. Practic, un modul atunci când este încărcat în orice script va exporta toate variabilele și subrutinele sale globale. Aceste subrutine pot apela direct ca și cum ar fi fost declarate în scriptul însuși. Modulele Perl pot fi scrise cu extensia .pm la numele de fișier Ex: Foo.pm. Un modul poate fi scris folosind „pachetul Foo” la începutul programului.

Modulul de bază Perl:

#!/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;

Fără ieșire

Pentru a folosi acest modul Perl, trebuie să-l plasăm în directorul de lucru curent.

Putem încărca un modul Perl folosind require sau use oriunde în cod. Diferența majoră între necesită și utilizare este, necesită modul încărcat în timpul rulării și încărcările de utilizare în timpul compilării.

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

Aici, în exemplul de mai sus, accesăm subrutinele folosind numele complet calificat al modulului.

De asemenea, putem accesa pachetul folosind „utilizați aritmetica”.

Exportator:

Acest modul are o funcționalitate implicită a metodelor de import.

#!/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;

Matricea @EXPORT poate fi folosită pentru a transmite o listă de variabile și subrutine care, implicit, vor fi exportate apelantului Modulului.

Matricea @EXPORT_OK poate fi folosită pentru a transmite o listă de variabile și subrutine care vor fi exportate la cerere, unde utilizatorul trebuie să specifice în timpul încărcării modulului.

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

În mod implicit, adăugarea subrutinei va fi exportată. Metoda de scădere nu va fi exportată dacă nu este specificată în timpul încărcării modulului.

Programare orientată pe obiecte în Perl

În această secțiune, vom învăța cum să creăm module Perl orientate pe obiecte. Mai întâi, să vedem care este obiectul? Un obiect este o instanță prin care putem accesa, modifica și localiza anumite date din orice modul Perl. Acest lucru nu este altceva decât să faceți pachetul, variabilele și subrutinele existente Perl să acționeze ca o clasă, obiecte și metode în raport cu alte limbaje de programare.

Creați o clasă

Știm deja cum să creăm module din subiectul anterior. Scopul clasei este de a stoca metode și variabile. Un Modul Perl va avea subrutine care sunt metode. Trebuie să accesăm acele variabile și obiecte subrutine.

Constructor Perl

Un constructor în Perl este o metodă care va executa și ne va returna o referință cu numele modulului etichetat la referință. Aceasta se numește binecuvântare a clasei. Folosim o anumită variabilă pentru binecuvântarea unei clase perl, care este 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;

Noua metodă folosită ca constructor pentru o clasă, Acest constructor va crea un obiect pentru noi și va reveni la scriptul care apelează acest constructor.

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

Aici, trebuie să înțelegem cum a fost creat obiectul. Ori de câte ori încercăm să creăm un obiect pentru clasă, trebuie să folosim numele complet al clasei. Să presupunem că, dacă clasa perl este localizată în vreun lib\Math\Arithmetic.pm. Și, dacă vrem să accesăm această clasă perl din directorul lib, atunci trebuie să furnizăm întreaga cale către clasă în timp ce apelăm scriptul.

utilizați lib::Math::Aritmetică;

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

Așa se întâmplă crearea obiectului în Perl.

@INC:

Cum știe scriptul Perl unde există modulul de bibliotecă? Perl știe doar despre directorul curent al scriptului și calea bibliotecii încorporate în Perl. Ori de câte ori folosim modulul Perl, care nu se află în directorul curent sau Calea bibliotecii Perl, scriptul va eșua întotdeauna. Despre @INC, acesta este un tablou, care deține toate căile directoarelor unde trebuie să caute modulele Perl. Încercați să executați această comandă și vedeți care va fi rezultatul.

perl –e "print @INC"

Acest lucru va oferi o ieșire și aceasta este calea în care vor fi disponibile modulele lib. Ori de câte ori folosim un nou modul de bibliotecă, trebuie să îi spunem lui Perl, interpretului, să caute acea locație specială în care este disponibil modulul Perl.

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

Faceți din aceasta prima linie de cod. Aceasta îi va spune interpretului tău să caute în acea Cale. sau utilizare

lib Arithmetic; # List here is your Perl Module location

Perl Destructor

Destructorul unui obiect este apelat implicit la sfârșitul și înainte de ieșirea scriptului. Acesta este folosit pentru a vă distruge obiectele din memorie.


PERL V/s Shell Scripting

Introducere în programarea PERL

  • Programarea în Perl nu provoacă probleme de portabilitate, ceea ce este obișnuit atunci când se utilizează diferite shell-uri în scripturile shell.
  • Gestionarea erorilor este foarte ușoară în Perl
  • Puteți scrie cu ușurință programe lungi și complexe pe Perl datorită vastității sale. Acest lucru este în contrast cu Shell care nu acceptă spații de nume, module, obiect, moștenire etc.
  • Shell are mai puține biblioteci reutilizabile disponibile. Nimic în comparație cu CPAN-ul lui Perl
  • Shell este mai puțin sigur. Apelează funcții externe (comenzi precum mv, cp etc depind de shell-ul utilizat). Dimpotrivă, Perl face lucrări utile în timp ce folosește funcții interne.

Cum este utilizat PERL în testarea automatizării

Perl este utilizat pe scară largă în automatizare. Poate că nu este cel mai bun limbaj de programare din lume, dar este cel mai potrivit pentru anumite tipuri de sarcini. Să discutăm unde și de ce este folosit Perl Testarea automatizării.

Testarea stocării

Testarea stocării folosind Perl

Ce este stocarea? Date stocate în Fișiere.

Să presupunem că avem un depozit legat Caz de testare unde trebuie să scriem date pe o partiție, să o citim și să verificăm dacă datele sunt scrise corect.

Acest lucru se poate face manual, dar poate un tester manual să facă același lucru de 10000 de ori? Va fi un coșmar! Avem nevoie de automatizare

Cel mai bun instrument de automatizare a oricărui lucru legat de stocare este Perl datorită tehnicilor sale de manipulare a fișierelor, REGEX și analiza puternică a fișierelor, care consumă cel mai puțin timp de execuție în comparație cu alte limbaje de programare.

De ce trebuie să testăm stocarea? Gândiți-vă la centrele de date mari în care datele vor curge continuu de la un sistem la altul, cu 1000 de înregistrări stocate pe secundă. Testarea robusteței unui astfel de mecanism de stocare este esențială.

Multe companii precum HP, Dell, IBM și multe producții de servere folosesc Perl ca interfață pentru a testa funcționalitatea în domeniile de stocare și rețea. NetApp este una dintre aceste companii care lucrează complet pe stocare și folosește Perl ca limbaj de programare pentru a automatiza cazurile de testare.

Dacă sunteți interesat de Perl Automation, atunci ar fi recomandabil să aflați despre Storage & Networking Concepts.

Testare server și rețea:

Testarea serverului și a rețelei folosind Perl

Testarea serverului și a rețelei folosind Perl

PERL este utilizat pe scară largă în monitorizarea timpului de funcționare și a performanței serverului.

Luați în considerare un centru de date care are 100 de gazde (servere). Vi se cere să vă conectați la fiecare gazdă, să executați unele comenzi de la distanță. De asemenea, doriți să reporniți sistemul și să verificați când revine online.

Efectuarea manuală a acestei sarcini pentru toate cele 100 de gazde va fi un coșmar. Dar putem automatiza cu ușurință acest lucru folosind PERL

Proiectați pași pentru a realiza această automatizare de mai sus folosind PERL

  1. Preluați informații din fișierul despre informațiile gazdei, cum ar fi (IP, Nume de utilizator și Parolă).
  2. Utilizați Net::SSH2 pentru a vă conecta la fiecare sistem și a stabili un canal pentru a executa comenzile.
  3. Executați setul de comenzi necesare, de exemplu: ls, dir, ifconfig,ps etc.
  4. Reporniți sistemul.
  5. Așteptați 10 minute pentru ca sistemul să pornească.
  6. Faceți ping sistemului utilizând modulul Net::Ping și imprimați starea.

Vom codifica scenariul de mai sus.

Să luăm un fișier numit Input.txt care va stoca informațiile complete despre toate gazdele în care trebuie să ne conectăm și să executăm comanda.

Intrare.txt

192.168.1.2 parola root

192.168.1.3 parola root

192.168.1.4 rădăcină rădăcină123

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";
    }
}

Testare Web

Perl nu este limitat doar la testarea stocării și rețelei. De asemenea, putem efectua teste bazate pe Web folosind PERL. WWW-Mecanizare este un modul folosit pentru testarea web. Practic, nu va lansa niciun browser pentru a testa funcționalitatea aplicației web, ci folosește codul sursă al paginilor html.

De asemenea, putem efectua teste bazate pe browser folosind Selenium IDE, RC, driver web. Perl este suportat pentru Selenium.

\n”; #aceasta va păstra șirul rămas după ce se termină potrivirea patterului.
imprimare "