Perli õpetus: muutuja, massiiv, räsi koos programmeerimise näitega

Mis on Perl?

Perl on kõrgetasemeline, üldotstarbeline, tõlgendatav, dünaamiline programmeerimiskeel. Perl on termin, mis tähistab "praktilist ekstraheerimis- ja aruandluskeelt", kuigi Perli jaoks puudub akronüüm. Selle tutvustas Larry Wall 1987. aastal. Perli keel oli spetsiaalselt loodud teksti redigeerimiseks. Kuid nüüd kasutatakse seda laialdaselt erinevatel eesmärkidel, sealhulgas Linuxi süsteemihalduseks, võrgu programmeerimiseks, veebiarenduseks jne.

Programmeerimiskeelte ülevaade

Ütleme selle lihtsal viisil. Kuigi arvutid mõistavad ainult 0-d ja 1-sid (binaarkeel/masinakeel/ [madalatasemeline keel]), on meie, inimeste jaoks väga raske binaarkeeles programmeerida. Perl on programmeerimiskeel, mis kasutab loomuliku keele elemente, sõnu, mida kasutatakse tavalises inglise keeles ja on seetõttu inimestele hõlpsamini mõistetav [kõrgetasemeline keel]. Nüüd on probleem; arvutid ei saa aru kõrgetasemelistest keeltest, millest meie, inimesed, kergesti aru saame. Selleks vajame midagi, mis suudab tõlkida kõrgetasemelise keele madala taseme keelde. Siin tuleb meile appi tõlk. Tõlk on tarkvara, mis teisendab kõrgetasemelises keeles kirjutatud programmi madala taseme keelde, et arvuti mõistaks ja täidaks programmis kirjutatud juhiseid. Seega on Perl an tõlgendatud programmeerimiskeelt.

Kus Perlit kasutatakse?

Perli skriptikeele võimsust saab rakendada paljudes valdkondades. Perli kõige populaarsem kasutusala on veebiarendus. Perli kasutatakse ka paljude veebiserveri ülesannete automatiseerimiseks ja muudeks haldustöödeks, see suudab automaatselt genereerida e-kirju ja puhastada süsteeme. Perli kasutatakse endiselt algsel eesmärgil, st andmete väljavõtmiseks ja aruannete genereerimiseks. See võib koostada aruandeid ressursside kasutamise kohta ja kontrollida võrgu turvaprobleeme. Sel põhjusel on Perlist saanud populaarne keel, mida kasutatakse ka veebiarenduses, võrgunduses ja bioinformaatikas. Peale kõige selle saab perlit kasutada ka CGI programmeerimiseks.

Perlit saab kasutada ka piltide loomiseks ja manipuleerimiseks. Lisaks võrgu loomisele Telneti, FTP jne kaudu on Perli mõned kasutusjuhtumid graafilise kasutajaliidese loomine, VLSI elektroonika ja meilifiltrite loomine rämpspostituse vähendamiseks.

Perl on tuntud ka OOP (objektorienteeritud programmeerimise) praktikate rakendamise poolest ja toetab kõiki pärimise vorme (lihtne, mitmekordne ja teemant), polümorfismi ja kapseldamist. Perl on piisavalt paindlik, et toetada korraga nii protseduurilisi kui ka OOP-i. Perlil on ka lisamoodulid, mis võimaldavad teil sisse kirjutatud koodi kirjutada või kasutada/taaskasutada Python, PHP, PDL, TCL, oktaav, Java, C, C++, Basic, Ruby ja Lua teie Perli skriptis. See tähendab, et saate Perli nende lisadega kombineerida programmeerimiskeeled pigem olemasoleva koodi ümberkirjutamine.

Perli programmeerimiskeele rakendused

Perli programmeerimiskeele rakendused

Miks kasutada Perli?

Tõsi, on ka teisi programmeerimiskeeli, mida saab kasutada kõigi ülaltoodud asjade tegemiseks, siis miks peaksite kasutama spetsiaalselt Perli? Perli on väga lihtne õppida, eriti kui teil on arvutiprogrammeerimise taust. Perl loodi nii, et inimestel oleks seda lihtne kirjutada ja mõista, mitte teha seda arvutiga hõlpsaks töötlemiseks. See kasutab regulaaravaldisi. Selle loomulik keele stiil erineb teistest programmeerimiskeeltest, mis kasutavad spetsiifilist grammatikat ja süntaksit; Seetõttu on Perl väga paindlik ega sunni teile mingit kindlat viisi lahenduse või probleemi väljamõtlemiseks. Perl on väga kaasaskantav. See võib töötada mis tahes operatsioonisüsteemis, kuhu on installitud Perli tõlk, seega on see platvormist sõltumatu. Kõik Linux Operating Systems on installitud koos Perliga, nii et saate alustada Perli kodeerimist Linuxis juba karbist välja. See on erinevalt Shelli skriptidest, kus kood muutub kasutatava Linuxi distributsiooni maitse järgi, muutes selle üha vähem kaasaskantavaks Väikesed konkreetsed ülesanded Perlis muutuvad väga lihtsaks ja kiireks. Sellest algajatele mõeldud Perli õpetusest saate teada, kuidas saate konkreetsete ülesannete jaoks väikeseid ja kiireid programme kodeerida. Võtame lihtsa näite klassikalisest Hello World programmist, mida kasutatakse mis tahes programmeerimiskeele õppimiseks, mille juured on UNIX:

Näide: Perl tere maailm

Lihtne Perli näide

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

Väljund:

Tere, Maailm!

Ülaltoodud kaks koodirida trükitakse Tere, maailm! Kas see polnud nüüd liiga lihtne ja kiire? C-teadmistega õpilased, C++ teavad, et nendes keeltes sama väljundi saamiseks on vaja palju rohkem koodiridu.

Võib-olla mõtlete, miks Perl on veebis nii kuulus. See on lihtne, kuna enamik asju, mis veebis juhtuvad, on TEKSTIst ja Perl on tekstitöötluses väga hea. Kui võrrelda Perli mõne keelega, on Perl parim keel, mis on hea failihalduses, tekstitöötluses ja väljundaruandluses

Perli üks parimaid eeliseid on see, et see on nii tasuta kasutada

Perli kogukond usub kindlalt, et tarkvara peaks olema vabalt kättesaadav, vabalt muudetav ja vabalt levitatav. Mitmed Perli kogukonna vabatahtlikud püüavad programmeerimiskeelt võimalikult heaks muuta.

Perli eelised ja puudused

Plussid: Miinused:

Perli eelised

Perli puudused

  • Võrreldes teiste programmeerimiskeeltega on Perl tekstikäsitluse ja parsimise jaoks kõige võimsam
  • See on tõlgenduskeel, millel on kiire täitmisaeg, kuna pole vaja Perli skripti kompileerida
  • Lihtne ja lihtne programmeerida ja mõista.
  • See on objektorienteeritud.
  • CPAN-teek hõlbustab Perli arendamist (selle kohta saame rohkem teada teemas hiljem).
  • Kasutatakse veebiarenduses peamiselt makseväravate jaoks.
  • Kasutatakse automatiseerimises ja enamiku võrgu ja salvestusruumiga seotud asjade testimiseks.
  • Võrreldes teiste programmeerimiskeeltega on minimaalne GUI tugi.
  • Peate viitama keerukatele teegi moodulitele, mida pole nii lihtne mõista (ärge kartke, kui teate, kuidas asju teha, kõik on lihtne).
  • Keeruliste mustrite mõistmine nõuab kogemusi.

Alustame

Kuna on piisavalt teadmisi Perli ajaloo ja Perli kodeerimiseks vajalike arvutiprogrammeerimise põhikontseptsioonide kohta, on aeg sukelduda ja alustada Perliga. Järgmises peatükis õpetatakse, kuidas saate Perli oma süsteemis seadistada ja valmistuda Perli kodeerimise teekonnaks. See Perli skriptimise õpetus kasutab Linuxi operatsioonisüsteemiks, mida õpilased kasutavad Perlis kodeerimiseks.

Laadige alla ja installige Perl - Windows, Mac ja Linux

Kuidas Perli saada?

Head uudised sul on see ilmselt olemas!

Kuid kui te ei leia seda juba oma süsteemist, saate selle siiski tasuta hankida.

Et teada saada, kas teil on Perl juba installitud, minge käsureale ja tippige: perl -v

Kuidas Perli alla laadida

Käsk kuvab Perli versiooni, kui see on installitud. Sel juhul on versioon v5.14.2. Aga kui ei, siis ära paanitse…

UnixPERLi õpetus algajatele – täielik juhend Juba installeeritud Kaasas Perliga eelinstallitud, kuigi peate võib-olla värskendama uusimale versioonile.
Mac OS PERLi õpetus algajatele – täielik juhend Juba installeeritud OSX-iga on eelinstallitud Perl, kuigi peate võib-olla värskendama seda uusimale versioonile
WindowsPERLi õpetus algajatele – täielik juhend Vaja installida Saadaval on kaks valikut

  1. Strawberry Perl on Perli avatud lähtekoodiga binaarne distributsioon Windows OS. See sisaldab kompilaatorit ja eelinstallitud mooduleid, mis pakuvad võimalust installida XS CPAN mooduleid otse CPANist
  2. ActiveState perl pakub Perli binaarset distributsiooni (paljude platvormide jaoks) ja ka oma Perli paketihaldurit (PPM)

Perli värskendamine Linuxis:

Kui teil on vaja Perli versiooni värskendada, sisestage lihtsalt üks käsurida

sudo apt-get install perl

ja lõõgastuda. Ülejäänu eest hoolitsetakse. Lihtsalt veenduge, et teil oleks aktiivne Interneti-ühendus.

Värskendage Linuxis PERL-i

Värskendage Linuxis PERL-i

Installige perl jaoks Windows:

Esiteks laadige siit alla Active Perl link. ActivePerli installimiseks järgige neid samme Windows süsteem. Sama kohta vaadake allolevaid ekraanipilte.

Samm 1: Kui olete installiprogrammi alla laadinud ja installimise alustanud, näete allolevat akent, jätkamiseks klõpsake nuppu Edasi.

Kuidas installida Perli Windows

Samm 2: Installimise jätkamiseks nõustuge litsentsilepinguga.

Kuidas installida Perli Windows

Samm 3: Allpool on erinevad installitavad paketid. Vaikimisi valitakse kõik. Ainus, mis erineb, on PPM (Perl Package Manager). See on Active Perli utiliit väliste Perli moodulite või teekide installimiseks teie süsteemi. Jätkamiseks klõpsake nuppu Edasi.

Perli installimine Windows

Samm 4: Need on erinevat tüüpi Perli laiendused, mida saab Perli jaoks kasutada. Enamasti kasutame Perli jaoks .Pl, .Plx ja .Pm. Põhimõtteliselt kasutavad Perli moodulid teegifailile viitamiseks faililaiendit .Pm. Valige kõik suvandid ja klõpsake nuppu Edasi.

Perli installimine Windows

Samm 5: Installimise jätkamiseks klõpsake nuppu Installi.

Perli installimine Windows

Samm 6: Pärast installimist käivitage käsk "Perl –v", et kontrollida, kas Perl on teie süsteemi edukalt installitud.

PERL-i installimine on sisse lülitatud Windows

Perli keskkonna seadistamisel nii Linuxis kui ka Linuxis on palju asju, mida tuleb arutada Windows, kuna see installimine ei sisalda palju teegifaile. Peate need käsitsi installima. Saate need käsitsi installida, kasutades CPAN-i (Comprehensive Perl Archive Network) või kas PPM, mis töötab ainult perli akende jaoks. Kuid need failid ei ole Perlis kodeerimise alustamiseks kohustuslikud.

Lisaks sellele Windowsi seadistusele võite kasutada Windows 10. uus funktsioon Linuxi alamsüsteemis üle Windowsi ja kasutage seda perli koodi käitamiseks

Esimene Perli programm

Hello world!

Perli näide: Tere maailm

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

Ärge muretsege, kui te sellest tekstist aru ei saa. Kõik selgub varsti. Tule ja vaata seda rea ​​kaupa:

#!/usr/bin/perl		

See ütleb Operasüsteemi käivitamiseks programmiga, mis asub aadressil /usr/bin/perl. Mõned IDE-d seda rida ei vaja. Kui see on hädavajalik, peate siia kirjutama oma tõlgi tee. Pea meeles! See eririda peab asuma teie programmi alguses ja algama numbrist #! kasutada hoiatusi; See on veel üks spetsiaalne käsk, mis käsib tõlgil kuvada kõik hoiatused, st -w, mis aktiveerib hoiatused globaalselt.

print "Hello World";		

Printimisjuhis kirjutab teksti ekraanile. Semikoolon rea lõpus teatab perli tõlgile, et käsk on lõpetatud. Perli koodis tuleb iga juhise lõppu panna semikoolon. Pange tähele jutumärki (“). See on vajalik printimisõpetuse jaoks. Salvestage ülaltoodud skript nimega firstprog.pl

On Windows

Kui teil on Strawberry installitud, võite lihtsalt klõpsata käsul Käivita. Samuti saate käivitada käsurea liidese ja kirjutada konsoolile:

C:\> perl path\firstprog.pl		

või kui perl.exe pole teie teel:

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

Linuxis/Unixis

Peate lihtsalt avama terminali ja kirjutama:

perl firstprog.pl		

Kui te ei saa programmi käivitada, veenduge, et teil on selle käivitamise sobivus. Tippige terminali:

chmod +x firstprog.pl		

Teie programm on nüüd käivitatav ja töövalmis. Täitmiseks kirjutage:

./firstprog		

Installige cpan miinus moodulid

Moodulid on koodide komplekt, mida kasutatakse paljudes programmides tavalisi toiminguid sooritavate ülesannete täitmiseks. Kui kasutate perli mooduleid, ei pea te sama toimingu tegemiseks koode ümber kirjutama. Perl saab kasutada selliseid väliseid kooditeeke. Üks parimaid raamatukogusid on CPAN. See tähistab Comprehensive Perli Archive Võrk ja sisaldab tohutul hulgal Perli mooduleid, mida saate kasutada. See on kogukond või võrgustik, mis koosneb paljudest arendajatest, kes selliseid mooduleid panustavad. Kui installite oma perli moodulisse CPAN-moodulite toe, saate CPAN-mooduleid kasutada ja oma tööd lihtsamaks muuta. Enamik Perli mooduleid on kirjutatud Perlis, mõned kasutavad XS-i (need on kirjutatud C-s), seega on vaja C-kompilaatorit (seda seadistust on lihtne hankida – ärge paanitsege. Moodulid võivad sõltuda teistest moodulitest (peaaegu alati CPAN-ist) ja ei saa installida ilma nendeta (või ilma nende konkreetse versioonita). Paljud CPAN-i moodulid nõuavad nüüd Perli uusimat versiooni (versioon 5.8 või uuem). Hankige, pakkige lahti, ehitage ja installige mooduleid CPAN-ist, et hõlbustada teiste moodulite installimist (te tänate meid hiljem). App-cpanminus perl moodulid, tippige käsureale:

cpan App::cpanminus

cpan App::cpanminus Veenduge, et teil oleks perli moodulite allalaadimise ja installimise ajal Interneti-ühendus.

cpan miinus moodulite paigaldamine

Nüüd installige mis tahes moodul:

cpan –i <Module_Name>.		

Vaatame näidet mooduli File::Data installimisest (see on liides failiandmetele juurdepääsuks).

cpan miinus moodulite paigaldamine

Perli muutuja

Nüüd räägime muutujatest. Võite ette kujutada muutujat nagu konteinerit, mis sisaldab ühte või mitut väärtust. Pärast määratlemist jääb muutuja nimi samaks, kuid väärtus või väärtused muutuvad ikka ja jälle.

Muutujaid on 3 tüüpi:

Muutujate tüübid Perlis

Muutujate tüübid Perlis

Kõige lihtsamad on skalaarid ja see on meie tänane teema

Skalaarne muutuja

Seda tüüpi muutujatel on üks väärtus.

Selle nimi algab dollarimärgi ja Perli identifikaatoriga (see on meie muutuja nimi).

Skalaarmuutuja Perlis

Skalaarmuutuja Perlis

Nimekonventsioon

Kui olete tuttav teiste programmeerimiskeeltega, siis teate, et muutujate nimetamisel kehtivad teatud reeglid. Samamoodi on Perlil kolm reeglit skalaaride nimetamiseks.

  1. Kõik skalaarnimed algavad $-ga. Lihtne on meeles pidada iga nime eesliidet $. Mõelge sellele kui $ skalaarile.
  2. Nagu PHP. pärast esimest märki $, mis on Perlis eriline, on lubatud tähtnumbrilised märgid, st a kuni z, A kuni Z ja 0 kuni 9. Lubatud on ka allkriips. Muutujate nimede kaheks sõnaks jagamiseks kasutage alljoont. "Aga esimene märk ei saa olla arv"
  3. Kuigi numbrid võivad olla osa nimest, ei saa need tulla kohe pärast $. See tähendab, et esimene märk pärast $ on kas tähestik või alakriips. need, kes tulevad C/C++ taust peaks suutma sarnasuse kohe ära tunda. Näited

Perli näide:

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

Need ei ole aga legaalsed skalaarmuutujate nimed.

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

Üldreegel ütleb, et kui Perlil on millestki ainult üks, on see skalaar. Skalaare saab lugeda seadmetest ja me saame seda kasutada oma programmides.

Kaks tüüpi skalaarseid andmetüüpe

  1. Numbers
  2. Keelpillid

Numbers:

Seda tüüpi skalaarandmetes võiksime täpsustada:

  • täisarvud, need on lihtsalt täisarvud, näiteks 2, 0, 534
  • ujukomaarvud, need on reaalarvud, näiteks 3.14, 6.74, 0.333

Numbrimuutujad Perlis

Märkus. Üldiselt näeb Perli tõlk täisarve nagu ujukomaarvud. Näiteks kui kirjutate oma programmidesse 2, näeb Perl seda nagu 2.0000

Täisarvulised literaalid:

See koosneb ühest või mitmest numbrist, millele soovi korral eelneb pluss või miinus ja mis sisaldavad allkriipse.

Perli näited:

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

Nagu näete - see pole midagi erilist. Kuid uskuge mind, see on kõige levinum skalaari tüüp. Neid on igal pool.

Ujukoma literaalid:

See koosneb numbritest, soovi korral miinusest, kümnendkohast ja eksponendist.

Perli näited:

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

Ujukoma literaalid Perlis

Kaheksand-, kuueteistkümnend- ja binaarne esitus:

See on kümnendsüsteemi alternatiiv. Lubage mul näidata teile kaheksand-, kuueteistkümnend- ja binaarset esitust. Lühike tabel sisaldab kogu olulist teavet selle kummalise stiili kohta:

esindus alus Jätkab
Oktoober 8 0 (null)
Hexadecimal 16 0x
Binaarne 2 0b

Perli näited:

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

Kõik need Perli väärtused tähendavad sama. Perl ei salvesta väärtusi samas vormingus. See teisendab need kuueteistkümnend-, kahend- ja kaheksandväärtused sisemiselt kümnendsüsteemiks.

Ülesanne on skalaariga kõige tavalisem toiming ja see on väga lihtne. Perl kasutab selle võrdusmärgi jaoks. See võtab avaldise väärtuse paremalt küljelt ja paneb selle väärtuse meie muutujale.

Vaatame näiteid:

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

Veelgi enam, muutujasse saab lisada mitte ainult arvu, vaid ka avaldise.

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

Keelpillid

Stringid: see on ka väga lihtne skalaar.

Stringi maksimaalne pikkus Perlis sõltub arvuti mälumahust. Stringi suurus ei ole piiratud, teie stringid võivad moodustada suvaline arv märke, sümboleid või sõnu. Lühimal stringil pole märke. Pikim suudab täita kogu süsteemimälu. Perli programme saab kirjutada täielikult 7-bitise ASCII märgistikuna. Perl võimaldab teil lisada ka mis tahes 8-bitise või 16-bitise märgistiku. mitte-ASCII märgid stringiliteraalides. Perl on lisanud ka Unicode'i UTF-8 toe.

Stringide tüübid Perlis

Sarnaselt numbritele on ka kahte erinevat tüüpi stringe:

  • Ühekordsete jutumärkide stringi literaalid
  • Double tsitaadid stringliteraalid

Ühe jutumärgiga stringliteraalid

Üksikuid jutumärke kasutatakse andmete lisamiseks, mida soovite sõna-sõnalt võtta. Lühike näide ja kõik peaks olema selge:

Perli näited:

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

Väljund:

see on $num

Üksikute jutumärkide tõttu ei võeta siin väärtuse $num väärtust ja tähemärgid "$", "n", "u" ja "m" lisatakse $txt väärtusele

Double-tsiteeritud stringliteraalid

Double jutumärke kasutatakse andmete lisamiseks, mis tuleb enne töötlemist interpoleerida. See tähendab, et paomärke ja muutujaid ei lisata lihtsalt sõna otseses mõttes hilisematesse toimingutesse, vaid neid hinnatakse kohapeal. Escape-märke saab kasutada reavahetuste, tabeldusmärkide jms sisestamiseks.

Perli näited:

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

Väljund:

see on 7

Siin liidetakse topeltjutumärkide tõttu $num väärtus $txt väärtusele

Double-tsitaadid interpoleerivad skalaar- ja massiivimuutujaid, kuid mitte räsi. Teisest küljest saate nii massiivi kui ka räsi lõikude interpoleerimiseks kasutada topelt-jutumärke.

Salapärane \n

Kaaluge järgmist programmi

Perli näited:

print "hello \n";

Väljund:

tere

Perl ei näita ainult "tere\n", vaid ainult "tere". Miks? Kuna '\n' on erimärk ja tähendab, et soovite oma programmis teksti kuvades minna uuele reale. print "tere\n uus rida"; Järgmine küsimus - kas on veel mingeid erilisi märke? Jah, nad on! Kuid ärge muretsege - vaid mõned. Kontrollige allolevat tabelit

Ehitama Kirjeldus
\n uus rida
\r tagasipöördumine
\t tab
\f vormisööt
\b backspace
\a kell
\e pääse
XUMX mis tahes kaheksand ASCII väärtus (siin, 007 = kelluke)
\x7f mis tahes kuueteistkümnendväärtus (siin, 7f = kustuta)
\\ tagasilöögi
\ ” topelttsitaat
\l väiketäht järgmine täht
\L kõik järgmised tähed väiketähtedega kuni \E
\u suurtäht järgmine täht
\U kõik järgmised tähed suurtähtedega kuni \E
\E Lõpetage \L, \U

Ma tean, pole olemas "mõned"... Aga uskuge mind, sa pead lihtsalt teadma

Stringid Muutuja

See on sama toiming, mida näeme numbrite määramisel. Perl saab meie stringi võrdusmärgi paremalt küljelt ja paneb selle stringi muutujaks.

Perli näited:

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

Väljund:

juhendaja315

Nagu näete, saate numbreid ja stringe panna samadesse muutujatesse. Muutujate klassi pole olemas.

Stringi aheldamine (punkt) :

Konkatenatsioonioperaator "." ühendab kahte või enamat stringi. Pea meeles! Kui string sisaldab jutumärke, käru tagastamist, kaldkriipsu, tuleb kõik need erimärgid eemaldada kaldkriipsuga.

Perli muutuja näited:

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

Väljund:

Tom on ema lemmikkass

Stringid

"$a", "$b" ühendatakse ja salvestatakse kausta "$c", kasutades "." operaator.

Lõpuks…

Teisendamine vahel Numbers ja stringid:

Nagu teate, teisendab Perl numbrid vastavalt vajadusele automaatselt stringiks. Kuidas Perl teab, mida me praegu vajame? See on lihtne – kõik sõltub operaatorist (räägime operaatoritest hiljem, nüüd, lihtsalt nõustuge, et operaatoreid on palju, numbrite ja stringide puhul erinevad) Kui operaator ootab numbrit, kasutab Perl väärtust arvuna . Kui operaator ootab stringi, kasutab Perl väärtust stringina. Teisisõnu – te ei pea sellise teisendamise pärast muretsema. Lühike näide ja kõik peaks olema selge:

Perli näited:

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

Väljund:

71

$stringi väärtus teisendatakse täisarvuks ja lisatakse $number väärtusele.

Lisamise tulemus 71 omistatakse $tulemusele.

Muutuja ulatus – Access Modifiers

Saame deklareerida skalaari mis tahes programmis. Kuid peate määrama juurdepääsu modifikaatori

Modifikaatoreid on 3 tüüpi

  1. my
  2. kohalik
  3. meie

Minu: Selle abil saate deklareerida mis tahes muutuja, mis on plokis spetsiifiline. st lokkis trakside sees.

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

Väljund puudub

Programmi väljund pole midagi!

PERLi õpetus algajatele – täielik juhend

Ülaltoodud näites näete, et deklareeritud on kaks muutujat, millest üks on if-ploki sees ($var_2) ja teine ​​väljaspool If-plokki ($var). Muutuja, mis on deklareeritud väljaspool plokki, on juurdepääsetav if-plokile, kuid muutuja, mis deklareeriti if-ploki sees, ei ole välisele programmile juurdepääsetav.

Kohalik: seda kasutades saame tegelikult maskeerida samad muutuja väärtused erinevateks väärtusteks ilma muutuja algset väärtust muutmata, oletame, et meil on muutuja $a, mille väärtuseks on määratud 5, saate selle muutuja väärtust tegelikult muuta sama muutuja uuesti deklareerimine, kasutades kohalikku märksõna, muutmata muutuja algset väärtust, mis on 5. Vaatame näite abil, kuidas see toimib.

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

Ülaltoodud programmi väljund on sel viisil.

kohalik, $var = 3

globaalne, $var = 5

Nii saame muutuja väärtust muuta ilma algväärtust mõjutamata.

Meie: kui muutuja on deklareeritud juurdepääsumuutjaga "meie", saab seda kasutada kogu paketis. Oletame, et teil on Perli moodul või pakett test.pm, millel on deklareeritud muutuja ulatusega meie. Sellele muutujale pääseb juurde mis tahes skriptides, mis seda paketti kasutavad.

Kui soovite Perlis programmeerida tõsiselt, peaksite alustama oma programmiga

#!/usr/local/bin/perl

kasutada ranget;

See aitab teil kirjutada paremat ja puhtamat koodi. 'kasuta ranget' lülitab sisse range pragma, mis paneb sind deklareerima oma muutujad minu märksõnaga.

See on hea programmeerimise tava

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

Tulemus: Viga

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

Väljund:

10

Perli massiiv

Mis on Perl Array?

Massiiv on eritüüpi muutuja, mis salvestab andmeid loendi kujul; igale elemendile pääseb juurde indeksinumbri abil, mis on iga elemendi jaoks kordumatu. Saate oma massiivi salvestada numbreid, stringe, ujuvaid väärtusi jne. See näeb hea välja, kuidas siis Perlis massiivi luua? Perlis saate massiivi määratleda, kasutades märki "@", millele järgneb nimi, mille soovite anda. Kaaluge massiivi määratlemist Perlis.

minu @massiiv;

Nii defineerime massiivi Perlis; võite mõelda, kuidas me peame sellesse andmeid salvestama. Andmete massiivi salvestamiseks on erinevaid viise. See sõltub sellest, kuidas kavatsete seda kasutada.

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

Väljund:

abcd

See on massiiv, milles on 4 elementi.

Massiiviindeks algab nullist ja lõpeb maksimaalse deklareeritud suuruseni, sel juhul on indeksi maksimaalne suurus 0.

Perli massiivi näide

Perli massiivi näide

Massiivi saab deklareerida ka ülaltoodud viisil; ainus erinevus on see, et see salvestab andmed massiivi, pidades eraldajaks tühikut. Siin tähendab qw() tsitaatsõna. Selle funktsiooni tähtsus on sõnade loendi genereerimine. Saate massiivi deklareerimiseks kasutada qw-d mitmel viisil.

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

Väljund:

abcdpqrsvxyz

Oletame, et soovite 5-le väärtuse määratath massiivi element, kuidas me seda teeme.

$massiiv [4] ='e';

Järjestikune massiiv

Järjestikused massiivid on need, kuhu salvestate andmeid järjestikku. Oletame, et soovite massiivi salvestada 1–10 numbrit või tähestikku az. Kõigi tähtede tippimise asemel võite proovida midagi sellist, nagu allpool –

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

Väljund:

12345678910

Perli massiivi suurus

Meil on massiiv, mis on juba saadaval ja te ei tea, mis massiivi suurus on, seega kuidas on võimalik seda leida.

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

Kas saame massiivi suuruse ilma funktsioone kasutamata? Jah, saame.

@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

Väljund:

5

5

Dünaamiline massiiv

Nimetatakse ülaltoodud massiivi deklareerimise meetodit staatilised massiivid, kus teate massiivi suurust.

Mis on dünaamiline massiiv?

Dünaamilised massiivid on need, mille deklareerite neile väärtust määramata. Millal me täpselt sellesse massiivi väärtusi salvestame? Lihtne, me salvestame need tööajal. Siin on selleks lihtne programm.

Selle ülesande täitmiseks kasutame mõningaid sisseehitatud Perli funktsioone.

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

Väljund:

See on

omamoodi dyn

mic

rr

y

Jagamisfunktsioon jagab stringi sisu massiiviks, mis põhineb sellele antud eraldajal. See funktsioon eemaldab stringist ka eraldaja, antud juhul on see 'a';

Push, Pop, Shift, Unshift Perli massiivide jaoks:

Neid funktsioone saab Perlis kasutada massiivi elementide lisamiseks/kustutamiseks.

  • Perl Push: lisab olemasoleva massiivi lõppu massiivielemendi.
  • Perl Pop: eemaldab massiivist viimase elemendi.
  • Perl Shift: eemaldab massiivist esimese elemendi.
  • Perl Unshift: lisab elemendi massiivi algusesse.

Massiivi funktsioonid Perlis

Vaatame näidet, kus saame kasutada allolevaid funktsioone.

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

Väljund:

1.: E T K

2. kui tõuge : E T K N N

3. kui vahetust välja lülitatakse : P E T K N N

4. kui pop : P E T K

5. kui vahetus: E T K

Perl Hashes

Miks me vajame Hashit?

Skalaaride ja massiivide kohta õppisime juba eelmistes jaotistes.

Mida täpselt skalaarid teevad? See salvestab ainult täisarvud ja stringid.

Mida massiivid täpselt teevad? See on skalaaride kogu, kus pääsete indeksite abil juurde massiivi igale elemendile. Kuid kas see on hea mõte kasutada massiivi, kui teil on sadu ja tuhandeid kirjeid? Me unustame, millisel indeksil on mis väärtus. Sellest olukorrast ülesaamiseks on meil midagi perli räsi sarnast.

Mis on räsi?

Räsi mahutab ka nii palju skalaari, kui massiivi mahutab. Ainus erinevus on see, et meil pole indeksit, pigem on meil võtmed ja väärtused. Räsi saab deklareerida, alustades %-st, millele järgneb räsi nimi. Vaatame näidet, kuidas me saame Perli räsi defineerida ja kuidas seda massiivist eristada

Vaatleme näidet kolmest inimesest ja nende vanused on esindatud massiivina.

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

Väljund:

Sainath33Krishna24Shruthi25

Nii on raske teada saada individuaalset vanust, kuna peame meeles pidama nii kõigi inimeste nimede asukohti kui ka vanust. See võib olla lihtne, kui teil on 3 nime, aga kui teil on 1000 või rohkem? Sa tead vastust.

Räsi Perlis

Sellest saame räsi abil üle.

Räsi näide:

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.

Väljund:

Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi25

Oleme nüüd kuulutanud välja räsi, suurepärane!! Kuidas aga sellele juurde pääseda või printida? Igale räsielemendile tuleb juurde pääseda sellega seotud võtmega, millele määratakse väärtus. Seega on räsi iga võtme ja väärtuse vahel üks-üks vastendus.

Iga inimese vanuse printimiseks peate lihtsalt meeles pidama selle inimese nime.

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

Võib-olla olete mõelnud, miks ma kasutasin $hash{KeyName}. Pidage meeles, et räsi on jällegi skalaaride kogu. Seega saame igale räsielemendile juurdepääsuks kasutada $, mis tähistab skalaari.

Hashi näide Perlis

Märkus. Iga räsivõti peab olema kordumatu, vastasel juhul alistab see teie varem määratud väärtuse.

Kuidas saame määrata räsi teisele räsi? Lihtne, samamoodi nagu meie jaoks

Samuti saame printida kogu räsi.

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

Väljund:

Tom23

Lisage Perli räsi

Nagu näete, on meil juba räsi %newHash ja nüüd peame sellesse lisama rohkem kirjeid.

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

Väljund:

Jim25John26Harry27

Perli kustutamisklahv

Võib-olla soovite räsist kirje kustutada. Nii saame seda teha.

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

Kustutamine on Perli sisseehitatud funktsioon. Siin näeme näidet massiivile räsi määramisest.

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

Märkus. Kui prindite räsi või salvestate räsi massiivi. Järjestus võib alati erineda. See ei ole alati sama.

Massiivile saame määrata ainult räsi võtmed või väärtused.

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

Kõigi räsikirjete eemaldamiseks saame määrata räsi otse nullile.

%newHash=();# See määratleb räsi uuesti ilma kirjeteta.

Perli tingimuslaused

Perlis saame kasutada tingimuslauseid. Niisiis, mis on tingimuslikud avaldused? Tingimuslikud väited on need, mille puhul kontrollite, kas teie koodis on teatud asjaolud täidetud.

Mõelge näitele, ostate puuvilju ja teile ei meeldi, kui hind ületab 100 taala. Niisiis, siin kehtib reegel 100 taala.

Perl toetab kahte tüüpi tingimuslauseid; nad on kui ja kui mitte.

Perl If

Kui koodiplokk käivitatakse, kui tingimus on tõene.

Perli tingimuslaused

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

Väljund:

5

Perl Kui muidu

See näeb hea välja. Mõelgem olukorrale, kus $a ei ole 5.

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

Väljund:

Väärtus on 10 — FAIL

Nii saame korraga kontrollida ainult ühte tingimust. Kas see on piirang? Ei, erinevaid tingimusi saate juhtida ka kasutades if… elsif … else.

Perl Else Kui

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

Väljund:

Täidetud elsif-plokk – väärtus on 5

Ülaltoodud juhul täidetakse elsifi plokk nii, et $a võrdub 5-ga.

Võib esineda olukordi, kus nii if kui ka elsif koodiplokid ebaõnnestuvad. Selle stsenaariumi korral käivitatakse muu koodiplokk. Saate tegelikult muu koodi kontrollimise välistada, kui teile ei meeldi seda lisada.

Perl Pesastatud Kui

Sel juhul saate if-koodiplokki kasutada veel ühes if-koodiplokis.

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

Väljund:

1. muu ploki sees – väärtus on 11

Käivitage sama kood, muutes $a väärtust; ülejäänu saate teada.

Perl Välja arvatud juhul

Teil on juba idee, mis siis, kui teeb (kui tingimus on tõene, käivitab see koodiploki). Välja arvatud juhul, kui see on vastupidine if-le, välja arvatud juhul, kui tingimus on väär, käivitatakse koodiplokk.

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

Väljund:

1. muu ploki sees – väärtus on 5

Arvake ära, milline saab olema väljund. Sul on õigus!!!!!. Väljundiks on else ploki printlause. Tingimuse tõttu, välja arvatud juhul, kui koodiplokk on tõene, pidage meeles, välja arvatud juhul, kui plokki käivitatakse ainult siis, kui tingimus on väär. Muutke $a väärtust ja käivitage kood, näete erinevust.

Perl Kasutades kui

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

Väljund:

Muu ploki sees

Kasutades, kui

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

Väljund:

Sees, välja arvatud juhul, kui Block

Perli ahelad – juhtimisstruktuurid

Perl toetab teiste programmeerimiskeeltega sarnaseid juhtimisstruktuure. Perl toetab nelja tüüpi juhtimisstruktuure foreach, while ja till jaoks. Me kasutame neid avaldusi mõne koodi korduvaks täitmiseks.

Perli tsükli jaoks

Koodiplokki käivitatakse seni, kuni tingimus on täidetud. Toome näite selle kohta, kuidas Perli massiivi silmust teha.

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

Väljund:

Massiivi indeksi 0 väärtus on 1

Massiivi indeksi 1 väärtus on 2

Massiivi indeksi 2 väärtus on 3

Massiivi indeksi 3 väärtus on 4

Massiivi indeksi 4 väärtus on 5

Massiivi indeksi 5 väärtus on 6

Massiivi indeksi 6 väärtus on 7

Massiivi indeksi 7 väärtus on 8

Massiivi indeksi 8 väärtus on 9

Massiivi indeksi 9 väärtus on 10

Siin on () avaldises palju väiteid. Igaühele neist on oma tähendus.

for ( initsialiseerimine ; tingimus; suurendamine)

Siin on veel üks kasutusviis.

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

Väljund:

1n

2n

3n

4n

5n

6n

7n

8n

9n

10n

Perl Foreach

Iga avalduse jaoks saab kasutada samamoodi nagu jaoks; Peamine erinevus on selles, et meil pole selles seisukorra kontrollimist ja suurendamist.

Võtame sama näite foreach perliga.

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

Väljund:

Väärtus on 1

Väärtus on 2

Väärtus on 3

Väärtus on 4

Väärtus on 5

Väärtus on 6

Väärtus on 7

Väärtus on 8

Väärtus on 9

Väärtus on 10

Foreach võtab massiivi iga elemendi ja määrab selle väärtuse $var iga iteratsiooni jaoks. Sama jaoks saame kasutada ka $_.

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

Väljund:

Väärtus on 1

Väärtus on 2

Väärtus on 3

Väärtus on 4

Väärtus on 5

Väärtus on 6

Väärtus on 7

Väärtus on 8

Väärtus on 9

Väärtus on 10

See näeb hea välja massiividele juurdepääsuks. Kuidas on lood räsidega, kuidas saame foreachi abil räsivõtmeid ja väärtusi hankida?

Räsi võtmetele ja väärtustele pääsemiseks saame kasutada foreach'i selle silmuse kaudu.

Silmuse jaoks Perlis

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

Väljund:

Miki

Tom

Jerry

Teil võib tekkida küsimus, miks me foreach()-s võtmeid kasutasime. Võtmed on Perli sisseehitatud funktsioon, mille abil saame kiiresti juurde pääseda räsiklahvidele. Kuidas on lood väärtustega? Räsi väärtustele juurdepääsuks saame kasutada väärtuste funktsiooni.

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

Väljund:

väärtus on 24

väärtus on 23

väärtus on 25

Perl Kuigi

Perl While silmus on juhtstruktuur, kus koodiplokki täidetakse seni, kuni tingimus on tõene.

Koodiplokk väljub ainult siis, kui tingimus on väär.

Võtame näite Perl While tsükli kohta.

Kuigi tsükkel Perlis

Siin on probleem, mis nõuab kasutajalt sisendit ja see ei välju enne numbrit "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"

Väljund:

Arva ära arv vahemikus 1 kuni 10

9

Arva ära arv vahemikus 1 kuni 10

5

Arva ära arv vahemikus 1 kuni 10

7

Arvasite ära õnnenumbri 7

Ülaltoodud näites ei vasta tingimus while tõeseks, kui sisestame muu sisendi kui '7'.

Kui näete, kuidas while siin töötab, käivitub koodiplokk ainult siis, kui mõne hetke tingimus on tõene.

Perl do-while

Do while tsükkel käivitatakse vähemalt korra isegi siis, kui while jaotise tingimus on vale.

Võtame sama näite, kasutades funktsiooni do while.

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

Väljund:

10

9

8

7

6

5

4

3

2

1

Nüüd on väärtus väiksem kui 1

Perl kuni

Kuni koodiplokk on sarnane tingimuslausega välja arvatud juhul. Siin käivitatakse koodiplokk ainult siis, kui tingimus kuni plokini on vale.

Võtame sama näite, mida mõneks ajaks kasutasime.

Siin on probleem, mis nõuab kasutajalt sisendit ja see ei välju enne, kui nimi on muu kui 'sai'.

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

Väljund:

Sisestage suvaline nimi sai

Perl teha kuni:

Do kuni saab kasutada ainult siis, kui vajame, et tingimus oleks vale, ja seda tuleks täita vähemalt üks kord.

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

Väljund:

Sisestage suvaline nimi Howard

Sisestage mis tahes nimi Sheldon

Sisestage suvaline nimi sai

Erinevuste nägemiseks käivitage näidiskoodid while, do-while, till ja do-until.

Perl Operator

Mis on Operator?

Operatorsid arvutikeeles tähistavad toimingut, mida saab sooritada mõne muutujate või väärtuste komplektiga, millest arvuti aru saab. Perl on lisanud enamiku Operatorid C-keelest. Võrreldes teiste programmeerimiskeeltega on Perlil palju operaatoreid. Operatorid liigitatakse aritmeetiliseks, loogiliseks, relatsiooni- ja määramisoperaatoriks.

Aritmeetika Operators:

Aritmeetilised operaatorid on need, mida saab kasutada mõnede põhiliste matemaatiliste operatsioonide tegemiseks. Need aritmeetilised operaatorid on kahendoperaatorid, mille puhul vajame põhitoimingu tegemiseks kahte argumenti. Ühtekuuluvaid operaatoreid saame kasutada ka muude põhitoimingute jaoks; erinevust näete allpool toodud näidetes.

Operator Kirjeldus Näide

+

Kahe väärtuse või muutuja lisamiseks kasutatav liitmisoperatsioon

väärtusi hoides

$x=5+6; # või

$y=6;

$z=$x+$y;

-

Lahutamisoperaator, mida kasutatakse kahe väärtuse või muutuja, mis hoiab väärtusi, lahutamiseks

$x=6-5; # või

$y=6;

$z=$x-$y;

*

Korrutamisoperaator, mida kasutatakse kahe väärtuse või muutuja väärtuste korrutamiseks

$x=6*5; # või

$y=6;

$z=$x*$y;

/

Jaotusoperaator, mida kasutatakse kahe väärtuse või muutuja väärtuste jagamiseks

$x = 36/6; # või

$y=6;

$z=$x/$y;

**

Eksponenti esitamiseks ja väärtuse hankimiseks kasutatav eksponentsiaaloperaator.

Näide: 22 = 43 = 27

$x=5**5; # või

$x=4;

$y=2;

$z=$x**$y;

%

Mooduli operaator, mida kasutatakse meeldetuletuse saamiseks kahe väärtuse või muutuja väärtusi hoidva väärtuse jagamisel

$x=5%2; # või

$x=10;

$y=2;

$z=$x % $y;

++

Unaarne liitmise operaator muutuja väärtuse suurendamiseks 1 võrra

$x=5;

$x++;

Or

++$x;

-

Unaarne lahutamise operaator muutuja väärtuse vähendamiseks 1 võrra

$x=5;

$x–; # postituse vähendamine

Or

–$x;# eelvähenemine

Näide kõigi ülaltoodud toimingute tegemiseks.

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

Väljund:

10 ja 2 liitmine on 12

10 ja 2 alam on 8

Mul 10 ja 2 on 20

Div 10 ja 2 on 5

Exp 10 ja 2 on 100

Modifikatsioon 10 ja 2 on 0

Ülesanne Operators:

Omistamisoperaatorid määravad muutujatele lihtsalt väärtused, kuid siin on veel üks asi, mida peame meeles pidama, määramise operaatorid sooritavad ka aritmeetilisi tehteid ja määravad uue väärtuse samale muutujale, millega toiming sooritatakse.

Operator Kirjeldus Näide

+=

Lisamise operaator, mida kasutatakse samale muutujale väärtuse lisamiseks ja määramiseks

$x=4;

$x+=10;

-=

Lahutamisoperaator, mida kasutatakse lahutamiseks ja samale muutujale väärtuse määramiseks

$x=4;

$x-=10;

*=

Korrutamisoperaator, mida kasutatakse samale muutujale väärtuse lisamiseks ja määramiseks

$x=4;

$x*=10;

/=

Jagamise operaator, mida kasutatakse jagamiseks ja samale muutujale väärtuse määramiseks

$x=4;

$x/=10;

** =

Eksponentsi operaator, mida kasutatakse eksponendi hankimiseks ja samale muutujale väärtuse määramiseks

$x=4;

$x**=10;

%=

Mooduloperaator, mida kasutatakse jagamisel meeldetuletuse saamiseks ja samale muutujale väärtuse määramiseks

$x=10;

$x%=4;

Näide kõigi ülaltoodud toimingute tegemiseks.

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

Väljund:

Lisa = 15

Alam = 10

Mul = 50

Div = 10

Loogiline ja suhteline Operators:

Perl kasutab arvude ja stringide võrdlemiseks loogilisi operaatoreid. Enamasti kasutatakse tingimuslausetes loogilisi operaatoreid.

Loogiline ja suhteline Operators Perlis

Loogiline ja suhteline Operators Perlis

Operator Kirjeldus

==või võrdne

Operator, mida kasutatakse selleks, et kontrollida, kas mõlemad muutujad on võrdsed

!=Või ei

Operator, mida kasutatakse selleks, et kontrollida, kas mõlemad muutujad pole võrdsed

> või gt

Operator kasutas kontrollimiseks, kas

A on suurem kui B

<or lt

Operator kasutas kontrollimiseks, kas

A on väiksem kui B

>=või ge

Operator kasutas kontrollimiseks, kas

A on suurem või võrdne B-ga

<=või le

Operator kasutas kontrollimiseks, kas

A on väiksem või võrdne B-ga

|| või või

Operator, mida kasutatakse A või B hoidmisväärtuse kontrollimiseks

&&või ja

Operator, mida kasutatakse nii A kui ka B hoidmisväärtuse kontrollimiseks

Võtame näite, kus saame selgitada kõiki stsenaariume.

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

Väljund:

Tõsi - võrdub 5 ja 5

Tõsi - ei võrdu 6 ja 7

Tõsi – 7 on suurem kui 6

Tõsi - 6 vähem kui 7

Tõsi - 6 vähem kui 7

Tõsi – 7 on suurem kui 6

Loogiliste operaatorite näiteid näete hilisemates jaotistes.

Perli erimuutujad

Mis on Perli erimuutujad?

Perli erimuutujad on need, millel on mingi etteantud tähendus. Neid muutujaid tähistatakse kas pärisnime või kirjavahemärkidega. Meil on spetsiaalne muutuja kõigi Perli toetatud muutujate jaoks, nagu skalaarsed erimuutujad, massiivi erimuutujad, räsi erimuutujad. Enamik meie kasutatavatest erimuutujatest on skalaarid.

Kui tahame kasutada spetsiaalset muutujat koos selle nimega, peame laadima Perli mooduli "kasuta inglise keelt", et öelda Perli tõlk selgesõnaliselt, et kasutame selle nime kasutades spetsiaalseid muutujaid.

Skalaarsed erimuutujad

Muutuja Kirjeldus

$_$ARG

See on vaikemuutuja, mis salvestab praegused väärtused.

$0 või $PROGRAM_NAME

Salvestab Perli skripti failinime.

$/

Sisendkirje eraldaja, selle vaikeväärtus on '\n', mis on reavahetusmärk

$.

Hoiab loetava faili praegust reanumbrit

$,

Väljundvälja eraldaja, seda kasutab peamiselt print() lause. Vaikimisi on selle väärtuseks seatud 0, saame selle muutuja väärtust muuta.

$\

Väljundkirje eraldaja, selle muutuja väärtus on tühi; saame sellele määrata mis tahes väärtuse, mida print() kasutab väljundi printimisel.

$#

Seda muutujat kasutatakse numbrite printimisel väljundvormingus.

$%$FORMAT_PAGE_NUMBER

Säilitab loetud faili praeguse leheküljenumbri.

$=$FORMAT_LINES_PER_PAGE

Hoiab loetud faili praeguse lehekülje pikkuse.

$-$FORMAT_LINES_LEFT

Hoiab lehelt printimiseks jäänud ridade arvu väärtust.

$~$FORMAT_NAME

Vormingu nimi: Hoiab parajasti valitud väljundi vormingut vaikimisi failikäepideme nime.

$^$FORMAT_TOP_NAME

Hoiab failitöötleja päise vormingu väärtust, vaikimisi väärtus on _TOP, millele järgneb failikäepideme nimi.

$|$OUTPUT_AUTOFLUSH

Vaikimisi on null; seda kasutatakse väljundpuhvri tühjendamiseks pärast iga write() või print() järel.

$$

Hoiab Perli tõlgi jooksva protsessi numbrit.

$?

Olekukood : Toru ja süsteemi kõne. Täidetud käsu tagastamise olek.

$&$MATCH

Regulaaravaldistes kasutatuna sisaldab see viimase eduka mustri vaste stringi.

$`$ PREMATCH

Regulaaravaldistes kasutatakse stringi, millele eelneb viimane edukas mustri vaste.

$'$ POSTMATCH

Regulaaravaldistes kasutatuna sisaldab see stringi, millele järgneb viimane edukas mustri vaste.

$+$LAST_PAREN_MATCH

Hoiab viimase sulu stringi, mis vastab viimase mustriotsingule.

$

$1, $2, $3…. Hoiab sobitatud mustri väärtused järjekorras.

$[

Esimene indeks: massiiv, alamstring.

$]

Perli versioon.

$”

Loendielementide jaoks kasutatav eraldaja on vaikimisi tühik.

$;

Mitmemõõtmelistes massiivides kasutatav alamindeksi eraldaja

$!

Numbrite kontekstis prindib vea numbri. Stringi kontekstis printige tõrge.

$@

Säilitab süntaksivea teabe, mida kasutatakse eval() kasutamisel.

$<

Hoiab skripti käitava protsessi tegelikku UID-d (kasutaja ID-d).

$>

Hoiab skripti käitava protsessi efektiivset UID-d.

$(

Hoiab skripti käitava protsessi tegelikku GID-d (grupi ID).

$)

Hoiab skripti käitava protsessi kehtivat GID-d.

$^D$SILUMINE

Hoiab silumislippude praegust väärtust.

$^C

Hoiab lipu praegust väärtust, kui kasutatakse käsurea lülitit –c.

$^F

Maksimaalseks süsteemifaili deskriptoriks on vaikimisi seatud 2

$^I$INPLACE_EDIT

Hoiab käsurea lüliti –i väärtust.

$^M

Spetsiaalset mälukogumit saab kasutada, kui Perli skript sureb mälu väljalülitamise vea tõttu.

$^O$OSNAME

Operasüsteemiteave salvestatakse. 'Linux' Linuxi süsteemide jaoks, 'mswin32' Windows süsteeme.

$^T$BASETIME

Skriptide käitamise aeg sekundites.

$^W$HOIATUS

Käsurea lüliti –w praegune väärtus. Hoiatuslüliti.

$ARGV

Praeguse faili nimi, kui kasutatakse <>.

Massiivi erimuutujad:

Muutuja Kirjeldus

@INC

Hoiab loendit teedest, mille kaudu saab praeguse skripti täitmise ajal vaadata Perli teegi mooduleid või skripte. Seda @INC-d kasutatakse kasutusel ja selle teegi moodulite teede uurimiseks on vaja avaldusi.

@ARGV

Salvestab edastatud käsurea argumendid.

@_

Kasutatakse alamprogrammides, parameetrite edastamisel alamprogrammidele.

@F

See on massiiv, kuhu sisendread salvestatakse, kui automaatne split –a (kasutatakse käsurea lülitit).

Räsi erimuutujad:

Muutuja Kirjeldus

%INC

Faili nimi on võtmed; väärtused on nende failide tee. Kasutatud tee, kasuta ja nõua.

%ENV

Süsteemi keskkonnamuutujad.

%SIG

Signals käitleja.

Perli regulaaravaldis

Mis on regulaaravaldis?

Perli regulaaravaldis on piisavalt tugev, et sobitada lausete või lausete rühma stringimustrid. Regulaaravaldisi kasutatakse enamasti teksti sõelumisel, mustrite sobitamisel ja paljus muus, lähtudes nõudest. Meil on teatud operaatorid, mida kasutatakse spetsiaalselt regulaaravaldise mustrite sidumiseks =~ ja !~, need on test- ja määramistehtereid.

Regular Expression Operatorse

Regular Expression Operators Perlis

Regular Expression Operators Perlis

  • Perli matš – m//
  • Perli asendusliige – s///
  • Perli transliteratsioon – tr///

Enne edasiminekut peame teadma regulaaravaldise kohta mõnda asja; Perl Regexi süntaksis on teatud asjad, nagu metamärgid, metamärgid.

Char Tähendus

\

Eriline või tsitaat

*

Sobitage 0 või enam tähemärki

+

Sobitage 1 või enam tähemärki

?

Sobitage 0 või 1 märk

|

Saab kasutada alternatiivsete mustrite sobitamiseks

()

Kasutatakse sobitatud mustri salvestamiseks

[]

Tähemärkide komplekti saab edasi anda. Kasutatakse spetsiaalselt numbrite ja tähestiku jaoks.

{}

Kasutatakse matši sooritamise aja määramiseks.

^

Stringi algus

$

Stringi lõpp

\w

Kasutatakse ühe märgi või sõna vastendamiseks, mis võib olla tähtnumbriline, sealhulgas „_”

\W

Sobitage midagi muud peale tähtnumbrite

\s

Kasutatakse tühikute sobitamiseks

\S

Sobitage midagi muud peale tühikute

\d

Sobivad numbrid. Mitte kümnendväärtused ja negatiivsed väärtused

\D

Sobitage midagi muud peale numbrite.

\t

Sobitage tabeldusruum

\n

Sobitage reavahetus

Ülaltoodud on märkide komplekt, mida saab kasutada mustri sobitamise ajal.

Vaatame paar näidet.

Mõelge olukorrale, kus kasutaja sisestab skripti täitmisel teatud sisendi ja me tahame kontrollida, kas kasutaja sisestas sisendiks mõne nime või mitte. Peame teie nime ekstraheerimiseks ja selle printimiseks kirjutama regulaaravaldise süntaksi.

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

Väljund:

Leitud muster

Siin oleme kirjutanud regulaaravaldise nii, et /.*(Guru99).*/.* vastavad stringi kõikidele märkidele. A '.' Perli regex vaste viitab mis tahes märgile, sealhulgas tühikule.

Vaatame, kuidas täpselt saame Regexi konstrueerida.

Vaatleme näidet mitmest sõnast, numbrist ja erisümbolitest koosnevast jadast, nagu „Tere kõigile, see on minu number: +91-99298373639”;

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

Sõnaruum sõna tühik sõna tühik sõna tühik sõna tühik sõna tühik erimärk : tühik erimärk+numbrid erimärk –numbrid.

Perli matš Operatorse

Vasteteateid kasutatakse stringi sobitamiseks mõnes lauses või muutujas.

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

Väljund:

tõsi

See väike kood prindib 'tõene', kuna perli mustri sobitamine tuvastab stringi muutujas. Põhimõtteliselt otsib Perl teksti //, mis on esitatud kogu stringi ulatuses, isegi kui see leiab ühest kohast, tagastab see väärtuse "tõene". Muster võib olla muutuja mis tahes kohas. Võime proovida asendada =~ väärtusega !~, et näha nende kahe operaatori erinevust.

Perli asendus Operator

Seda operaatorit saab kasutada mis tahes märgi otsimiseks ja asendamiseks kas nulli või mõne muu märgiga.

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

Väljund:

tšello kuidas läheb

Märkus. Tegelikult saame kasutada mis tahes mustri sobitamise stringi, nagu tegime varem ka selles asendusoperaatoris. Siin kasutasime 'gi', g-globally, i-ignore suur- ja suurtähti.

Perli tõlge Operator

See on sarnane asendusega, kuid see ei kasuta ühtegi perli regulaaravaldist, vaid saame asendada väärtuse või sõna otse.

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

Väljund:

Tere lehm oled sa

Perli faili I/O

Perl oli loodud failide ja sisend-väljundoperatsioonide tõhusaks manipuleerimiseks. Perli peamine eelis on failide sõelumine ja failide haldamine. Perlis on failide töötlemisel palju sisseehitatud funktsioone ja operaatoreid.

Põhimõtteliselt tehakse Perliga tehtavad failitoimingud FILEHANDLE'i abil. Peame faili avamise ajal määratlema selle FILEHANDLE'i kas lugemiseks või kirjutamiseks.

Sellest Perli skriptiõpetusest saate teada

Perl Avage fail

Saame faili avada Perlis saadaoleva funktsiooni open() abil.

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

Nüüd oleme faili avanud, nüüd tekib küsimus. Kas lugemiseks või kirjutamiseks?

Perl Faili lugemine ja Perl faili kirjutamine

Perlil on teatud režiimid, mida tuleb kasutada faili lugemiseks, kirjutamiseks või lisamiseks.

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

Mõned näited faili lugemiseks:

Faili lugemine Perlis

Oletame, et meil on perli fail nimega file.txt ja selles on vähe tekstiridu. Peame selle faili avama ja sama printima.

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;

See prindib faili sisu väljundekraanile.

Nüüd kirjutame programmi andmete loomiseks ja kirjutamiseks perli faili.

Faili kirjutamine Perlis

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

See kirjutab käitamise ajal antud sisendi ja loob faili test.txt, millel on sisend.

Ülaltoodud meetod proovib alati luua faili nimega test.txt ja kirjutab sisendi faili; kirjutame sama faili lisamiseks.

Faili lisamise operatsioon Perlis

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

<

Lugenud

+<

Loeb ja kirjutab

>

Loob, kirjutab ja kärbib

+>

Lugege, kirjutage, looge ja kärpige

>>

Kirjutab, lisab ja loob

+>>

Lugege, kirjutage, lisage ja looge

Nüüd peame nägema, kuidas põhinäidete abil faile lugeda, kirjutada ja lisada.

Näeme veel mõnda näidet ja muid funktsioone, mis aitavad failidest rohkem aru saada.

Perl Tell

See meetod tagastab faili FILEHANDLER praeguse asukoha baitides, kui see on teisiti määratud, käsitleb see positsioonina viimast rida.

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

Perli otsimine

Otsimisfunktsioon sarnaneb süsteemikutsele fseek. Seda meetodit kasutatakse failikursori paigutamiseks kindlasse asukohta, määrates baidid, millele järgneb kas failikursori algus või failikursori lõpp.

seek FH, bytes, WHENCE;

WHENCE on failikursori asukoht alustamiseks. Null määrab selle faili algusest peale.

Näide: failil input.txt on mõned andmed, näiteks „Tere, see on minu maailm”.

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

Väljund:

see on minu maailm

Perli linkimise tühistamine

Unlink kasutatakse faili kustutamiseks.

unlink("filename or complete file path");

Kataloogide haldamine:

Samuti saame hallata katalooge, mille kaudu saame käsitleda mitut faili.

vaatame, kuidas kataloogi avada. Saame kasutada opendir ja readdir meetodeid.

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

See prindib kõik selles kataloogis olevad failid.

Perli failitestid ja nende tähendus

-r

Kontrollimaks, kas fail/kataloog on praegusele kasutajale/rühmale loetav

-w

Kontrollimaks, kas praegune kasutaja/rühm saab faili/kataloogi kirjutada

-x

Kontrollimaks, kas praegune kasutaja/grupp on faili/kataloogi käivitatav

-o

Kontrollimaks, kas fail/kataloog kuulub praegusele kasutajale

-R

Kontrollimaks, kas fail/kataloog on sellele tegelikule kasutajale/rühmale loetav

-W

Kontrollimaks, kas see päriskasutaja/grupp saab faili/kataloogi kirjutada

-X

Kontrollimaks, kas see päriskasutaja/grupp on faili/kataloogi käivitatav

-O

Kontrollimaks, kas fail/kataloog kuulub sellele päriskasutajale

-e

Kontrollimaks, kas faili/kataloogi nimi on olemas

-z

Kontrollimaks, kas fail on olemas ja selle suurus on null (kataloogide puhul alati väär)

-f

Kontrollimaks, kas sisestus on tavaline fail

-d

Kontrollimaks, kas sisestus on kataloog

-l

Kontrollimaks, kas sisestus on sümboolne link

-S

Kontrollimaks, kas sisestus on pistikupesa

-p

Kontrollimaks, kas Entry on nimega toru ("FIFO")

-b

Kontrollimaks, kas kirje on ploki erifail (nagu ühendatav ketas)

-c

Kontrollimaks, kas sisestus on märgi erifail (nagu I/O-seade)

-u

Kontrollimaks, kas fail või kataloog on seadistatud

-g

Kontrollimaks, kas fail või kataloog on seatudgid

-k

Kontrollimaks, kas failil või kataloogil on kleepuv bitt seadistatud

-t

Antud failikäepide on TTY (nagu süsteemifunktsiooniga isatty() ei saa failinimesid selle testiga testida)

-T

Kontrollimaks, kas fail näeb välja nagu "tekst" fail

-B

Kontrollimaks, kas fail näeb välja nagu binaarfail

-M

Faili modifikatsiooni vanuse (mõõdetuna päevades) kontrollimiseks

-A

Faili juurdepääsu vanuse (mõõdetuna päevades) kontrollimiseks

-C

Faili Inode modifikatsiooni vanuse (mõõdetuna päevades) kontrollimiseks

Perli alamprogramm

Mis on alamprogramm?

Alamprogrammid on sarnased teiste programmeerimiskeelte funktsioonidega. Oleme juba kasutanud mõningaid sisseehitatud funktsioone, nagu print, chomp, chop jne. Saame Perlis kirjutada oma alamprogramme. Neid alamprogramme saab kirjutada suvalisse kohta programmi; alamprogrammid on eelistatav paigutada kas koodi algusesse või lõppu.

Alamprogramm PERL-is

Alamprogrammide näide

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

Nüüd, kui me teame, kuidas alamprogrammi kirjutada, kuidas me sellele juurde pääseme?

Peame alamprogrammi juurde pääsema või seda kutsuma, kasutades alamprogrammi nime, mille ees on sümbol "&".

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

Perli parameetrite ja Perli argumentide edastamine

Alamprogrammid või perli funktsioon on kirjutatud korduvkasutatava koodi paigutamiseks. Enamik korduvkasutatavast koodist nõuab parameetrite edastamist alamprogrammile. Siin õpime, kuidas saame alamprogrammile argumente edastada.

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.

Väljund:

3 on edastatud väärtus

@_ on spetsiaalne massiivimuutuja, mis salvestab alamprogrammidele edastatud argumendid.

Perl Shift

Võime kasutada ka märksõna 'shift', mis nihutab ühe parameetri korraga muutujale või $_[0],$_[1]… mis on @_ massiivi individuaalne element

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

Väljund:

tere on möödas

Alamprogramme kasutatakse tavaliselt objektorienteeritud programmeerimisel ja ka kohtades, kus võib olla rohkem korduvkasutatavat koodi.

Alamprogrammide põhifunktsioonid on mõne ülesande tegemine ja korduvkasutatava koodi tulemuse tagastamine.

PERLi õpetus algajatele – täielik juhend

Saame tagastada väärtuse alamprogrammist kasutades return märksõna.

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

Väljund:

11

$result sisaldab lisatud $a ja $b väärtust.

Räsid ja massiivi saame edastada ka otse alamprogrammile.

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

Väljund:

1a2b

Võime tagastada ka räsi või massiivi.

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;

Väljund:

Alamrutiini sees2b1aPärast alamrutiini kõne2b1a

Perli vorming

Perlil on mehhanism, mille abil saame aruandeid genereerida. Seda funktsiooni kasutades saame väljundekraanil või failis printides koostada aruandeid täpselt nii, nagu soovime. Lihtsa vormingu saab kirjutada Perlis saadaolevate printf- või sprintf-funktsioonide abil.

printf "%05d\n", 30;

See hõlmab eesolevaid nulle numbri 30 ette, mis teeb numbrite koguarvuks 5. Sama saab kasutada ka sprintf-i jaoks.

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

Kasutades printf ja sprintf, saame enamiku Perli vormingutest. Aruannete puhul on seda keeruline rakendada.

Perli vorming

Aruande näide:

=================================================== ===========================
Nimi Aadress Vanus Telefon
=================================================== ===========================
Krishna Chennai 24 929309242
Shruthi Chennai 24 929309232

Ülaltoodud on näide aruannetest, mida peame Perlis samal viisil printima. Seda saab saavutada perl printf ja perl sprintf abil. Seda saab tõhusalt rakendada vormingu abil.

Vormingu saab deklareerida järgmisel viisil.

format FORMATNAME=FORMATLIST.

Siin kasutame konkreetset kirjutamismeetodit, et printida andmed väljundekraanile või faili.

Sümbol Kirjeldus

@

Kasutatakse välja omaniku alguse tähistamiseks

>

Teksti parem joondamine

<

Teksti joondamine vasakule

|

Keskjoondus

#

Numbriline, kui on mitu #. Eeldatakse kommentaarina, kui on sisestatud üksik #

.

Koma

^

Väljahoidja algust saab kasutada ka mitmerealiseks ja ka reamurdmiseks

~

Rida peab olema tühi, kui muutuja on tühi

@*

Mitu rida.

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

Väljundi nägemiseks käivitage kood.

Kasutame @-sümbolit, et määrata väljahoidja või stringi algus, iga tähemärk "<".

Kasutame standardväljundile printimiseks STDOUT. Saame selle muuta failitöötlejaks, mida kasutame andmete faili kirjutamiseks.

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

Saame asendada "<" sõnadega ">" või "|" teksti joonduse muutmiseks.STDOUT_TOP-i kasutatakse vormingu päise kujundamiseks.Saame sama kasutada ka failitöötlejaga, kasutades FH_TOP(FH on failikäsitleja).See väljastab vormingu failile, mida me töötame sisse.

Perli kodeerimisstandardid

Igal programmeerijal on teatud standardite järgi koodi kirjutamise tunnetus; need standardid peaksid olema piisavalt tuttavad, et teised programmeerijad saaksid koodist aru ja seda õigesti toetada.

Kodeerimisstandardid Perlis

Kodeerimisstandardid Perlis

Koodi kirjutamine on lihtne ja lihtne. Probleem tekib siis, kui seda on vaja hilisemates etappides hooldada. Koodi kirjutamisel tuleb järgida õigeid juhiseid ja kodeerimisstandardeid. Perl määratleb ka teatud standardid, mis on programmeerijatele koodi kirjutamisel kasulikud. Koodi kirjutamise ajal on soovitatav laadida 'strict' ja 'warnings module'. Igal neist moodulitest on oma tähtsus. Strict paneb meid muutuja enne kasutamist deklareerima ja annab ka teada, kas teie koodis on tühi sõna. Alternatiivselt saab kasutada hoiatuste moodulit, edastades shebangis Perli tõlgile võtme "-w". Väljundekraanile prinditakse hoiatused.

#!/usr/bin/perl –w

Allpool on mõned standardite loendid.

  • Kasutage moodulit "range" ja "hoiatused".
  • Eemalda muutuja, mida ei kasutata.
  • Muutujate nimed peaksid olema teistele kasutajatele arusaadavad. Nt: $nimi, @fileData jne.
  • Skripti kodeerimisel on vaja dokumentatsiooni.
  • Ärge kodeerige ühtegi väärtust, vaid proovige need dünaamiliselt hankida või paluge kasutajal käitusajal sisestada. (Failitee, failinimed).
  • Maksimeerige koodi taaskasutust. Proovige korduvkasutatavat koodi alamprogrammidesse panna.
  • Alamprogrammidele tuleks anda tähendus täisnimed.
  • Alamprogrammid tuleb kirjutada koos asjakohaste kommentaaride ja dokumentatsiooniga.
  • Alati initsialiseeri muutujad.
  • Kontrollige alati süsteemikõnede tagastuskoode. Faili avamine võib juhtuda, kuid ei pruugi juhtuda, siin kuvatakse tagastamiskoodi olemasolu korral vea olek, kui faili pole olemas.

    Näide: avatud (FH,

  • Alamprogramm peaks alati tagastama väärtuse.
  • Avage lokkis samal real.
  • Ühe rea BLOCK võib asetada ühele reale lokkis.
  • Kasutage silte ROOPS-i ajal, siis oleks lihtne tsüklist väljuda, kui see on vajalik.
  • Kasutage alljoont, kui pikad fraasid on kirjutatud muutuja nime või alamprogrammina.
  • Proovige kodeerimisel kasutada lihtsat regexit.

Täiuslik näide kodeerimisstandarditega:

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

Perli vigade käsitlemine

Mis on erand?

Erandiks on sündmus, mis toimub programmi täitmise ajal ja mis peatab või lõpetab teie programmi.

Viga tehnika

Iga programmeerija peab programmeerimise ajal hoolitsema veakäsitluse eest. Perl pakub ka vigade käsitlemise tehnikaid, mille abil saame vea kinni püüda ja neid vastavalt käsitleda.

Vigade käsitlemine Perlis

Vigade käsitlemine Perlis

Programmi vigade kontrollimiseks on palju võimalusi. Peame uurima kasutatava funktsiooni tagastuskoode. Kui suudame neid tagastuskoode korralikult käsitleda, on enamik vigade käsitlemisest võimalik saavutada.

Mis tagastatakse süsteemikõnede korral?

Süsteemikõnede korral salvestatakse tagastamise olek kahte erimuutujasse $? Ja $!

$! – See püüab kinni tõrketeatega seotud veanumbri või veanumbri.

$? – See säilitab oleku tagastamise süsteemi() funktsiooni.

Perli või loogilise operaatori kasutamine

Süsteemikõnede kasutamisel saame vigade käsitlemiseks kasutada loogikat või operaatorit.

ex:

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

See avab faili lugemisrežiimis, kui fail on olemas.

Mis siis, kui fail puudub?

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

Eval funktsioon saab käsitleda saatuslikke vigu, kompileerimise aja vigu, käitusvigu ja neid vigu, mis lõpetavad teie koodi mingil ajahetkel.

Funktsioonil Perl Eval võib olla koodiplokk või avaldis. Evals peab kõike, mis sellesse on pandud, kui stringi.

Mõelge olukorrale, kus kutsutakse alamprogrammi, mida skriptis pole määratletud. Sellises olukorras lõpetab skript teatega "määratlemata alamprogramm &XYZ, seda viga saab käsitleda funktsioonis eval.

Evals-ploki kasutusvõimalusi on palju; Üks selline kasutus on siis, kui tahame käivitamise ajal laadida operatsioonisüsteemile omase mooduli.

Näide: nulliga jagamine põhjustab saatusliku vea; selle käsitlemiseks saame koodi paigutada evalsi plokki.

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

Väljund:

süntaksiviga C:\Users\XYZ\Text.pl real 8, lähedal ")

{“

Faili C:\Users\XYZ\Text.pl täitmine katkestati kompileerimisvigade tõttu.

Näide: eval kasutades perl die lauset.

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

Väljund:

Tabatud: Suri alakatses

Kasutades Perli Proovi

Perl ei toeta try, catch ja lõpuks koodiplokke nagu teised programmeerimiskeeled. Saame neid siiski kasutada välise Perli mooduli laadimisega.

kasuta Proovi::Tiny;

Seda kasutades saame asetada teie koodi prooviblokki ja tabada vea hoiatusplokis.

Evalis kasutatud $@ asemel Try::Tiny kasutab $_.

# käsitleda vigu püüdmiskäitlejaga

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

Kasutades lõpuks.

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

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

Väljund:

foo aadressil C:\Users\XYZ\Text.pl 4. real.

Sel viisil saame kasutada proovimist, püüdmist ja lõpuks.

proovige { # väidet }

püüda {# väide }

lõpuks { # väide };

Or

try 
{ 
# statement 
} 
finally 
{ 
# statement 
};

Väljund:

Or

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

Väljund:

Perl Socketi programmeerimine

Mis on pistikupesa?

PERLi õpetus algajatele – täielik juhend

Pistikupesa on meedium, mille kaudu saavad kaks arvutit võrgus suhelda, kasutades võrguaadressi ja porte.

Oletame, et A (server) ja B (klient) on kaks süsteemi, mis peavad mõne programmi käitamiseks üksteisega suhtlema, kasutades sokleid.

Selle rakendamiseks peame looma pesad nii A-s (serveris) kui ka B-s (klient), A on vastuvõtvas olekus ja B on saatvas olekus.

A (server):

Siin soovib server saada ühendust B-lt (klient) ja täita mõned toimingud ning saata tulemuse tagasi B-le (klient). Kui me koodi käivitame, proovib A-s olev operatsioonisüsteem luua sokli ja seob ühe pordi selle pesaga. Seejärel kuulab see saatjat, kes on B.

B (klient).

Siin soovib klient saata mõne programmi oma süsteemist töötlemiseks A (serverisse). Kui me koodi käivitame, proovib operatsioonisüsteem B-s luua A-ga (serveriga) suhtlemiseks pesa, B peab määrama A IP-aadressi ja pordi numbri, millega B soovib ühendust luua.

Kui see läheb hästi, suhtlevad mõlemad süsteemid teabe vahetamiseks ühe pordi kaudu. Perl toetab ka pistikupesade programmeerimist.

Perlil on natiivne API, mille kaudu saab sokleid rakendada. Selle hõlbustamiseks on palju CPAN-mooduleid, mille abil kirjutame sokliprogramme.

Serveri toimingud:

  • Loo Socket
  • Sidumispesa aadressi ja pordiga
  • Kuulake selle pordi aadressi pistikupesa
  • Aktsepteerige kliendiühendused, mis proovivad luua ühendust serveri pordi ja IP-aadressi abil
  • Tehke toiminguid

klient Operatused:

  • Loo Socket
  • Ühendage serveriga, kasutades selle pordiaadressi
  • Tehke toiminguid

Klient-server OperaPerlis

socket.io

See on üks pistikupesade programmeerimise moodul, mis põhineb objektorienteeritud programmeerimisel. See moodul ei toeta võrkudes kasutatavat INET-võrgu tüüpi.

IO::Socket::INET:

See moodul toetab INET domeeni ja on üles ehitatud IO::Socketsile. Kõik IO::Socketsis saadaolevad meetodid päritakse INET-moodulis.

TCP-protokolli kasutav klient ja server:

TCP on ühendusele orienteeritud protokoll; kasutame seda protokolli pistikupesade programmeerimiseks.

Enne edasist jätkamist vaatame, kuidas saame luua IO::Socket::INET-mooduli jaoks objekti ja luua sokli.

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

Uus meetod IO::Socket::INET moodulis aktsepteerib alamprogrammi sisendparameetrina räsi. See räsi on eelmääratletud ja me peame lihtsalt andma kasutatavatele võtmetele väärtused. Seal on selle räsi kasutatavate võtmete loend.

PeerAddr

Kaughosti aadress

PeerHost

PeerAddr sünonüüm

PeerPort

Kaugport või -teenus

LocalAddr

Kohaliku hosti sidumisaadress

localhost

Kohaliku aadressi sünonüüm

LocalPort

Kohaliku hosti sidumisport

proto

Protokolli nimi (või number)

KASUTUSALA

Pistikupesa tüüp

Kuulama

Järjekorra suurus kuulamiseks

ReuseAddr

Enne sidumist määrake SO_REUSEADDR

Taaskasutamine

Enne sidumist määrake SO_REUSEADDR

ReusePort

Enne sidumist määrake SO_REUSEPORT

Ülekanne

Enne sidumist määrake SO_BROADCAST

Aegumine

Erinevate toimingute ajalõpu väärtus

MultiHomed

Proovige kõiki mitme koduga hostide aadresse

Blokeerimine

Tehke kindlaks, kas ühendus on blokeerimisrežiimis

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

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

Märge:

Pistikupesa programmeerimisel peame esmalt käivitama serveri.pl ja seejärel klient.pl eraldi erinevates käsuviibades, kui töötame kohalikus hostis.

Mis on Perli moodulid ja paketid

Moodulid ja paketid on üksteisega tihedalt seotud ja sõltumatud. Pakett: Perli paketti tuntakse ka nimeruumina ja millel on kõik unikaalsed muutujad, nagu räsid, massiivid, skalaarid ja alamprogrammid. Moodul: Moodul on korduvkasutatava koodi kogum, kuhu kirjutame alamprogrammid. Neid mooduleid saab laadida Perli programmidesse, et kasutada nendes moodulites kirjutatud alamprogramme.

Mis on Perli moodulid?

Standardmoodulid installitakse Perli installimisel mis tahes süsteemi. CPAN: terviklik Perl Archive Network – Perli moodulite ülemaailmne hoidla. Meie enda kohandatud Perli moodulid, mida saame ise kirjutada. Põhimõtteliselt ekspordib moodul mis tahes skripti laadimisel kõik oma globaalsed muutujad ja alamprogrammid. Need alamprogrammid saavad otse helistada, nagu oleksid need skriptis endas deklareeritud. Perli mooduleid saab kirjutada .pm laiendiga failinimele Ex : Foo.pm. Mooduli saab kirjutada, kasutades programmi alguses 'pakett Foo'.

Perli põhimoodul:

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

Väljund puudub

Selle Perli mooduli kasutamiseks peame paigutama selle praegu töötavasse kataloogi.

Saame Perli mooduli laadida, kasutades nõuet või kasutada koodi suvalist kohta. Peamine erinevus nõudmise ja kasutamise vahel on see, et moodul on laaditud käitusajal ja laaditakse kompileerimise ajal.

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

Siin, ülaltoodud näites, pääseme alamprogrammidele juurde, kasutades täielikult kvalifitseeritud mooduli nime.

Saame paketile juurde pääseda ka 'kasuta aritmeetikat' kasutades.

Eksportija:

Sellel moodulil on impordimeetodite vaikefunktsioon.

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

Massiivi @EXPORT saab kasutada muutujate ja alamprogrammide loendi edastamiseks, mis vaikimisi eksporditakse mooduli helistajale.

Massiivi @EXPORT_OK saab kasutada nõudmisel eksporditavate muutujate ja alamprogrammide loendi edastamiseks, mille kasutaja peab mooduli laadimisel täpsustama.

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

Vaikimisi eksporditakse alamprogrammi lisamine. Lahutamismeetodit ei ekspordita, kui seda pole mooduli laadimisel määratud.

Objektorienteeritud programmeerimine Perlis

Selles jaotises õpime, kuidas luua Perli objektorienteeritud mooduleid. Kõigepealt vaatame, mis on objekt? Objekt on eksemplar, mille abil saame mis tahes Perli moodulis olevatele andmetele juurde pääseda, neid muuta ja neid leida. See pole midagi muud kui teie olemasoleva Perli paketi, muutujate ja alamprogrammide muutmine toimima klassi, objektide ja meetodite moodi viidates teistele programmeerimiskeeltele.

Loo klass

Me juba teame, kuidas eelmisest teemast mooduleid luua. Klassi eesmärk on salvestada meetodeid ja muutujaid. Perli moodulil on alamprogrammid, mis on meetodid. Peame neile muutujate ja alamprogrammide objektidele juurde pääsema.

Perli konstruktor

Perli konstruktor on meetod, mis käivitab ja tagastab meile viite mooduli nimega, mis on viitele märgitud. Seda nimetatakse klassi õnnistamiseks. Perli klassi õnnistamiseks kasutame konkreetset muutujat, mis on õnnista.

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

Klassi konstruktorina kasutatav uus meetod, see konstruktor loob meie jaoks objekti ja naaseb seda konstruktorit kutsuva skripti juurde.

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

Siin peame mõistma, kuidas objekt loodi. Alati, kui proovime klassi jaoks objekti luua, peame kasutama klassi täisnime. Oletame, et perli klass asub mõnes failis lib\Math\Arithmetic.pm. Ja kui tahame sellele perli klassile lib-kataloogist juurde pääseda, peame skripti kutsudes esitama kogu tee klassini.

kasuta lib::Math::Aritmeetikat;

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

Nii toimub objektide loomine Perlis.

@INC:

Kuidas Perli skript teab, kus raamatukogu moodul eksisteerib? Perl teab ainult skripti praegusest kataloogist ja Perli sisseehitatud teegi teest. Kui me kasutame Perli moodulit, mis ei asu praeguses kataloogis või Perli teegi tees, ebaõnnestub skript alati. @INC kohta on see massiiv, mis sisaldab kõiki kataloogi teid, kust ta peab otsima Perli mooduleid. Proovige seda käsku täita ja vaadake, milline on väljund.

perl –e "print @INC"

See annab teatud väljundi ja see on tee, kus lib-moodulid on saadaval. Iga kord, kui kasutame uut teegimoodulit, peame ütlema tõlgile Perlile, et ta uuriks seda asukohta, kus Perli moodul on saadaval.

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

Tehke see oma esimeseks koodireaks. See käsib teie tõlgil seda teed uurida. või kasutama

lib Arithmetic; # List here is your Perl Module location

Perli hävitaja

Objekti hävitaja kutsutakse vaikimisi välja lõpus ja enne skripti väljumist. Seda kasutatakse teie objektide mälust hävitamiseks.


PERL V/s Shelli skriptimine

Sissejuhatus PERL-i programmeerimisse

  • Perlis programmeerimine ei põhjusta kaasaskantavusprobleeme, mis on tavaline shelliskriptimisel erinevate kestade kasutamisel.
  • Vigade käsitlemine on Perlis väga lihtne
  • Tänu selle tohutule suurusele saate Perli hõlpsalt kirjutada pikki ja keerulisi programme. See on vastupidine Shellile, mis ei toeta nimeruume, mooduleid, objekti, pärandit jne.
  • Shellil on saadaval vähem korduvkasutatavaid teeke. Mitte midagi võrreldes Perli CPAN-iga
  • Shell on vähem turvaline. See kutsub esile väliseid funktsioone (käsud nagu mv, cp jne sõltuvad kasutatavast kestast). Vastupidi, Perl teeb sisemisi funktsioone kasutades kasulikku tööd.

Kuidas PERL-i automatiseerimise testimisel kasutatakse

Perlit kasutatakse automatiseerimises laialdaselt. See ei pruugi olla maailma parimad programmeerimiskeeled, kuid teatud tüüpi ülesannete jaoks sobib see kõige paremini. Arutame, kus ja miks Perli kasutatakse Automatiseerimise testimine.

Säilitamise testimine

Salvestusruumi testimine Perli abil

Mis on ladustamine? Failidesse salvestatud andmed.

Oletame, et meil on salvestusruum Testjuhtum kus peame kirjutama andmed ühele partitsioonile, need läbi lugema ja kontrollima, kas andmed on õigesti kirjutatud.

Seda saab teha käsitsi, kuid kas käsitsi testija saab teha sama 10000 XNUMX korda? Sellest saab õudusunenägu! Vajame automatiseerimist

Parim tööriist salvestusega seotud asjade automatiseerimiseks on Perl selle failikäsitlustehnikate tõttu, REGEX ja võimas failide sõelumine, mis kulutab teiste programmeerimiskeeltega võrreldes kõige vähem täitmisaega.

Miks me peame salvestusruumi testima? Mõelge suurtele andmekeskustele, kus andmed liiguvad pidevalt ühest süsteemist teise, kusjuures sekundis salvestatakse 1000 kirjet. Sellise salvestusmehhanismi töökindluse testimine on hädavajalik.

Paljud ettevõtted nagu HP, Dell, IBM ja paljud serveritootjad kasutavad Perli liidesena salvestus- ja võrgudomeenide funktsionaalsuse testimiseks. NetApp on üks selline ettevõte, mis töötab täielikult Storage'il ja kasutab testjuhtumite automatiseerimiseks programmeerimiskeelena Perli.

Kui olete huvitatud Perli automatiseerimisest, siis oleks soovitatav õppida Storage & Networking kohta Concepts.

Serveri ja võrgu testimine:

Serveri ja võrgu testimine Perli abil

Serveri ja võrgu testimine Perli abil

PERL-i kasutatakse laialdaselt serveri tööaja ja jõudluse jälgimiseks.

Mõelge andmekeskusele, millel on 100 hosti (serverit). Peate looma ühenduse iga hostiga, täitma mõnda käsku kaugjuhtimisega. Samuti soovite süsteemi taaskäivitada ja kontrollida, millal see uuesti võrku tuleb.

Selle ülesande käsitsi tegemine kõigi 100 hosti jaoks on õudusunenägu. Kuid me saame seda PERL-i abil hõlpsasti automatiseerida

Kavandage sammud selle ülaltoodud automatiseerimise saavutamiseks PERL-i abil

  1. Sisestage failist hostiteave (IP, kasutajanimi ja parool).
  2. Kasutage iga süsteemiga ühenduse loomiseks ja käskude täitmiseks kanali loomiseks Net::SSH2.
  3. Käivitage nõutav käskude komplekt, nt: ls, dir, ifconfig, ps jne.
  4. Taaskäivitage süsteem.
  5. Oodake 10 minutit, kuni süsteem käivitub.
  6. Pingige süsteemi Net::Ping mooduli abil ja printige olek.

Kodeerime ülaltoodud stsenaariumi.

Võtame faili nimega Input.txt, mis salvestab täieliku teabe kõigi hostide kohta, milles peame ühenduse looma ja käsu täitma.

Input.txt

192.168.1.2 juurparool

192.168.1.3 juurparool

192.168.1.4 juurjuur123

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

Veebi testimine

Perl ei piirdu ainult salvestusruumi ja võrgu testimisega. Samuti saame läbi viia veebipõhiseid testimisi, kasutades PERL-i. WWW-Mehhaniseeri on üks moodul, mida kasutatakse veebitestimine. Põhimõtteliselt ei käivita see veebirakenduste funktsionaalsuse testimiseks ühtegi brauserit, vaid kasutab html-lehtede lähtekoodi.

Saame läbi viia ka brauseripõhist testimist Selenium IDE, RC, veebidraiver. Perli toetatakse Selenium.

\n”; #see hoiab allesjäänud stringi alles pärast mustri sobitamist.
printida "