Perl opetusohjelma

Mikรค on Perl?

Perl on korkean tason, yleiskรคyttรถinen, tulkittu, dynaaminen ohjelmointikieli. Perl on termi, joka tarkoittaa "kรคytรคnnรถllistรค purkamis- ja raportointikieltรค", vaikka Perlistรค ei ole lyhennettรค. Sen esitteli Larry Wall vuonna 1987. Perl-kieli oli erityisesti suunniteltu tekstinmuokkausta varten. Mutta nyt sitรค kรคytetรครคn laajalti erilaisiin tarkoituksiin, mukaan lukien Linux-jรคrjestelmรคn hallinta, verkko-ohjelmointi, web-kehitys jne.

Ohjelmointikielten yleiskatsaus

Laitetaan se yksinkertaisella tavalla. Vaikka tietokoneet ymmรคrtรคvรคt vain nollia ja ykkรถsiรค (binรครคrikieli/konekieli/ [matala kieli]), meille ihmisille on erittรคin vaikea ohjelmoida binรครคrikielellรค. Perl on ohjelmointikieli, joka kรคyttรครค luonnollisen kielen elementtejรค, sanoja, joita kรคytetรครคn yleisessรค englannin kielessรค ja on siksi ihmisten helpompi ymmรคrtรครค [korkean tason kieli]. Nyt on ongelma; tietokoneet eivรคt ymmรคrrรค korkean tason kieliรค, joita me ihmiset ymmรคrrรคmme helposti. Sitรค varten tarvitsemme jotain, joka voi kรครคntรครค korkean tason kielen matalan tason kieleksi. Tรครคllรค tulkki tulee avuksemme. Tulkki on ohjelmisto, joka muuntaa korkean tason kielellรค kirjoitetun ohjelman matalan tason kieleksi, jotta tietokone ymmรคrtรครค ja suorittaa ohjelmaan kirjoitetut ohjeet. Siksi Perl on tulkittua ohjelmointikieltรค.

Missรค Perliรค kรคytetรครคn?

Perl-skriptikielen voimaa voidaan toteuttaa monilla aloilla. Perlin suosituin kรคyttรถ on Web-kehityksessรค. Perliรค kรคytetรครคn myรถs monien web-palvelimien tehtรคvien automatisointiin ja muihin hallintotehtรคviin, se voi automaattisesti luoda sรคhkรถposteja ja puhdistaa jรคrjestelmรคt. Perliรค kรคytetรครคn edelleen alkuperรคiseen tarkoitukseensa eli tietojen purkamiseen ja raporttien luomiseen. Se voi tuottaa raportteja resurssien kรคytรถstรค ja tarkistaa verkon tietoturvaongelmat. Tรคstรค syystรค Perlistรค on tullut suosittu kieli, jota kรคytetรครคn myรถs web-kehityksessรค, verkottamisessa ja bioinformatiikassa. Kaiken tรคmรคn lisรคksi perliรค voidaan kรคyttรครค myรถs CGI-ohjelmointiin.

Perliรค voidaan kรคyttรครค myรถs kuvien luomiseen ja kรคsittelyyn. Telnetin, FTP:n jne. verkottumisen lisรคksi graafisen kรคyttรถliittymรคn luominen, VLSI-elektroniikka ja sรคhkรถpostisuodattimien luominen roskapostituskรคytรคntรถjen vรคhentรคmiseksi ovat erรคitรค Perlin kรคyttรถtapauksia.

Perl tunnetaan myรถs OOP (olio-ohjelmointi) -kรคytรคntรถjen toteuttamisesta ja tukee kaikkia perinnรถn muotoja (yksinkertainen, moninkertainen ja vinoneliรถ), polymorfismia ja kapselointia. Perl on riittรคvรคn joustava tukemaan Procedural- ja OOP-kรคytรคntรถjรค samanaikaisesti. Perlissรค on myรถs ylimรครคrรคisiรค moduuleja, joiden avulla voit kirjoittaa tai kรคyttรครค / kรคyttรครค uudelleen sisรครคn kirjoitettua koodia Python, PHP, PDL, TCL, oktaavi, Java, C, C++, Basic, Ruby ja Lua Perl-skriptissรคsi. Tรคmรค tarkoittaa, ettรค voit yhdistรครค Perlin nรคihin ylimรครคrรคisiin ohjelmointikielet pikemminkin olemassa olevan koodin uudelleenkirjoittaminen.

Perl-ohjelmointikielen sovellukset

Perl-ohjelmointikielen sovellukset

Miksi kรคyttรครค Perliรค?

On totta, ettรค on olemassa muita ohjelmointikieliรค, joilla voidaan tehdรค kaikki edellรค mainitut asiat, niin miksi sinun pitรคisi kรคyttรครค erityisesti Perlia? Perl on erittรคin helppo oppia, varsinkin jos sinulla on tietokoneohjelmoinnin tausta. Perl on suunniteltu helpottamaan ihmisten kirjoittamista ja ymmรคrtรคmistรค sen sijaan, ettรค se olisi helppo kรคsitellรค tietokoneilla. Se kรคyttรครค sรครคnnรถllisiรค lausekkeita. Sen luonnollinen kielen tyyli eroaa muista ohjelmointikielistรค, jotka kรคyttรคvรคt tiettyรค kielioppia ja syntakseja; siksi Perl on erittรคin joustava eikรค vaadi sinulle mitรครคn erityistรค tapaa ajatella ratkaisua tai ongelmaa. Perl on erittรคin kannettava. Se voi toimia missรค tahansa kรคyttรถjรคrjestelmรคssรค, johon on asennettu Perl-tulkki, joten se on alustariippumaton. Kaikki Linux Operating Systems tulee asennettuna Perlin kanssa, joten voit aloittaa Perl-koodauksen Linuxissa heti. Tรคmรค on toisin kuin Shell-skriptit, joissa koodi muuttuu kรคytetyn Linux-jakelun maun mukaan, mikรค tekee siitรค entistรค vรคhemmรคn kannettavan. Pienistรค erityistehtรคvistรค Perlissรค tulee erittรคin helppoa ja nopeaa. Tรคmรคn aloittelijoille tarkoitetun Perl-opetusohjelman aikana opit kuinka voit koodata pieniรค, nopeita ohjelmia tiettyjรค tehtรคviรค varten. Otetaan yksinkertainen esimerkki klassisesta Hello World -ohjelmasta, jota kรคytetรครคn minkรค tahansa ohjelmointikielen oppimisen aloittamiseen, jonka juuret ovat UNIX:

Esimerkki: Perl hello world

Yksinkertainen esimerkki Perlistรค

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

lรคhtรถ:

Hei, maailma!

Yllรค olevat kaksi koodiriviรค tulostavat Hello, world! Eikรถ se nyt ollut liian yksinkertaista ja nopeaa? C-kielen tuntevat opiskelijat, C++ tietรครค, ettรค saman tulosteen saamiseksi nรคillรค kielillรค tarvitaan paljon enemmรคn koodirivejรค.

Saatat ihmetellรค miksi Perl on niin kuuluisa verkossa. Se on yksinkertaista, koska suurin osa verkossa tapahtuvista asioista on TEKSTIร„ ja Perl on erittรคin hyvรค tekstinkรคsittelyssรค. Jos vertaamme Perliรค johonkin kieleen, niin Perl on paras kieli, joka on hyvรค tiedostojen kรคsittelyssรค, tekstinkรคsittelyssรค ja tulosraportoinnissa.

Yksi Perlin parhaista eduista on, ettรค se on vapaasti kรคytettรคvรค

Perl-yhteisรถ uskoo vahvasti, ettรค ohjelmiston tulee olla vapaasti saatavilla, vapaasti muokattavissa ja vapaasti levitettรคvissรค. Useat Perl-yhteisรถn vapaaehtoiset pyrkivรคt tekemรครคn ohjelmointikielestรค mahdollisimman hyvรคn.

Perlin edut ja haitat

Plussat: Miinukset:

Perlin edut

Perlin haitat

  • Muihin ohjelmointikieliin verrattuna Perl on tehokkain tekstinkรคsittelyyn ja jรคsennykseen
  • Tรคmรค on tulkittu kieli, jolla on nopea suoritusaika, koska Perl-komentosarjaa ei tarvitse kรครคntรครค
  • Yksinkertainen ja helppo ohjelmoida ja ymmรคrtรครค.
  • Se on oliosuuntautunut.
  • CPAN-kirjasto helpottaa Perlin kehitystรค (saamme lisรคtietoja aiheesta myรถhemmin).
  • Kรคytetรครคn verkkokehityksessรค enimmรคkseen maksuyhdyskรคytรคvissรค.
  • Kรคytetรครคn automaatiossa ja useimpien verkkoon ja tallennustilaan liittyvien asioiden testaamiseen.
  • GUI-tuki on minimaalinen muihin ohjelmointikieliin verrattuna.
  • Sinun on viitattava monimutkaisiin kirjastomoduuleihin, joita ei ole niin helppo ymmรคrtรครค (รคlรค pelkรครค, kun tiedรคt kuinka tehdรค asiat, kaikki on helppoa).
  • Monimutkaisten kuvioiden ymmรคrtรคminen vaatii kokemusta.

Aloitetaan

Kun Perlin historiasta ja Perlin koodaamiseen tarvittavista tietokoneohjelmoinnin peruskรคsitteistรค on riittรคvรคsti tietoa, on aika hypรคtรค ja aloittaa Perlin kรคyttรถ. Seuraavassa luvussa opetetaan, kuinka voit asentaa Perlin jรคrjestelmรครคsi ja valmistautua koodausmatkaan Perlissรค. Tรคmรค Perl-komentosarjan opetusohjelma ottaa Linuxin kรคyttรถjรคrjestelmรคksi, jota opiskelijat kรคyttรคvรคt koodaamiseen Perlissรค.

Lataa ja asenna Perl - Windows, Mac ja Linux

Kuinka saada Perl?

Hyviรค uutisia sinulla varmaan on se!

Mutta jos et lรถydรค sitรค jo jรคrjestelmรคstรคsi, voit silti saada sen ilmaiseksi.

Jos haluat selvittรครค, onko sinulla jo asennettu Perl, mene komentoriville ja kirjoita: perl -v

Kuinka ladata Perl

Komento nรคyttรครค Perlin version, jos se on asennettu. Tรคssรค tapauksessa versio on v5.14.2. Mutta jos ei, รคlรค panikoiโ€ฆ

unixPERL-opetusohjelma aloittelijoille - tรคydellinen opas Jo asennettu Mukana esiasennettuna Perl, mutta saatat joutua pรคivittรคmรครคn uusimpaan versioon.
Mac OS PERL-opetusohjelma aloittelijoille - tรคydellinen opas Jo asennettu OSX:ssรค on esiasennettu Perl, vaikka saatat joutua pรคivittรคmรครคn sen uusimpaan versioon
WindowsPERL-opetusohjelma aloittelijoille - tรคydellinen opas Tarve asentaa Kaksi Vaihtoehtoa on saatavilla

  1. Strawberry Perl on avoimen lรคhdekoodin Perlin binรครคrijakelu Windows OS. Se sisรคltรครค kรครคntรคjรคn ja esiasennetut moduulit, jotka tarjoavat mahdollisuuden asentaa XS CPAN -moduuleja suoraan CPANista
  2. ActiveState perl tarjoaa Perlin binรครคrijakelun (monille alustoille) sekรค oman Perl-pakettienhallinnan (PPM)

Perlin pรคivittรคminen Linuxissa:

Jos sinun on pรคivitettรคvรค Perl-versio, kirjoita vain yksi komentorivi

sudo apt-get install perl

ja rentoutua. Loput hoidetaan. Varmista vain, ettรค sinulla on aktiivinen Internet-yhteys.

Pรคivitรค PERL Linuxissa

Pรคivitรค PERL Linuxissa

Asenna perl for Windows:

Lataa ensin Active Perl tรคstรค linkkiรค. Noudata nรคitรค ohjeita asentaaksesi ActivePerlin Windows jรคrjestelmรค. Katso samat alla olevat kuvakaappaukset.

Vaihe 1: Kun olet ladannut asennusohjelman ja kรคynnistรคnyt asennuksen, nรคet alla olevan ikkunan, napsauta Seuraava jatkaaksesi.

Kuinka asentaa Perl Windows

Vaihe 2: Hyvรคksy kรคyttรถoikeussopimus jatkaaksesi asennusta.

Kuinka asentaa Perl Windows

Vaihe 3: Alla on eri paketteja, jotka asennetaan. Oletuksena kaikki valitaan. Ainoa eroava asia on PPM (Perl Package Manager). Tรคmรค on Active Perlin tarjoama apuohjelma ulkoisten Perl-moduulien tai kirjastojen asentamiseen jรคrjestelmรครคsi. Napsauta Seuraava jatkaaksesi.

Perlin asennus Windows

Vaihe 4: Nรคmรค ovat erilaisia โ€‹โ€‹Perl-laajennuksia, joita voidaan kรคyttรครค Perlissรค. Useimmiten kรคytรคmme .Pl-, .Plx- ja .Pm-tiedostoja Perlille. Perl-moduulit kรคyttรคvรคt periaatteessa .Pm tiedostotunnisteena viitatakseen kirjastotiedostoon. Valitse kaikki vaihtoehdot ja napsauta Seuraava-painiketta.

Perlin asennus Windows

Vaihe 5: Napsauta Asenna-painiketta jatkaaksesi asennusta.

Perlin asennus Windows

Vaihe 6: Kun olet asentanut, suorita komento 'Perl โ€“v' tarkistaaksesi, onko Perl asennettu onnistuneesti jรคrjestelmรครคsi.

PERL-asennus pรครคllรค Windows

On monia asioita, joista on keskusteltava Perl-ympรคristรถn asettamiseksi sekรค Linuxissa ettรค Windows, koska tรคhรคn asennukseen ei sisรคlly monia kirjastotiedostoja. Sinun on asennettava ne manuaalisesti. Voit asentaa ne manuaalisesti kรคyttรคmรคllรค CPAN:ia (Comprehensive Perl Archive Network) tai joko PPM, joka toimii vain perl-ikkunoissa. Mutta nรคmรค tiedostot eivรคt ole pakollisia koodauksen aloittamiseksi Perlissรค.

Tรคmรคn Windows-asennuksen lisรคksi voit kรคyttรครค Windows 10:n uusi ominaisuus Linux-alijรคrjestelmรคssรค Windowsissa ja kรคyttรครค sitรค perl-koodin suorittamiseen

Ensimmรคinen Perl-ohjelma

Hello world!

Perl Esimerkki: Hello World

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

ร„lรค huoli, jos et ymmรคrrรค tรคtรค tekstiรค. Kaikki selviรครค pian. Tule katsomaan sitรค rivillรค:

#!/usr/bin/perl		

Tรคmรค kertoo OperaJรคrjestelmรค suorittaa tรคmรคn tiedoston ohjelmalla, joka sijaitsee osoitteessa /usr/bin/perl. Jotkut IDE:t eivรคt tarvitse tรคtรค riviรค. Jos se on vรคlttรคmรคtรถntรค, sinun on kirjoitettava tรคhรคn polku tulkkillesi. Muistaa! Tรคmรคn erikoisrivin on oltava ohjelman alussa ja sen on alettava numerosta #! kรคytรค varoituksia; Tรคmรค on toinen erikoiskomento, joka kรคskee tulkin nรคyttรคmรครคn kaikki varoitukset, esim. -w, joka aktivoi varoitukset maailmanlaajuisesti.

print "Hello World";		

Tulostusohje kirjoittaa tekstiรค nรคytรถlle. Puolipiste rivin lopussa kertoo perl-tulkijalle, ettรค ohje on valmis. Sinun tulee laittaa puolipiste jokaisen Perl-koodin ohjeen loppuun. Huomaa lainausmerkki (โ€œ). Se on tarpeen tulostusohjeiden kannalta. Tallenna yllรค oleva skripti nimellรค firstprog.pl

On Windows

Jos sinulla on Strawberry asennettuna, voit napsauttaa Suorita. Voit myรถs kรคyttรครค komentorivikรคyttรถliittymรครค ja kirjoittaa konsoliin:

C:\> perl path\firstprog.pl		

tai jos perl.exe ei ole polullasi:

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

Linuxissa/Unixissa

Sinun tarvitsee vain avata terminaali ja kirjoittaa:

perl firstprog.pl		

Jos et voi suorittaa ohjelmaa, varmista, ettรค sinulla on kelpoisuus suorittaa se. Kirjoita terminaaliin:

chmod +x firstprog.pl		

Ohjelmasi on nyt suoritettava ja valmis suoritettavaksi. Suorittaaksesi kirjoittamalla:

./firstprog		

Asenna cpan miinus -moduulit

Moduulit ovat joukko koodeja, joita kรคytetรครคn suorittamaan tehtรคviรค, jotka suorittavat yleisiรค toimintoja useissa ohjelmissa. Jos kรคytรคt perl-moduuleja, sinun ei tarvitse kirjoittaa koodeja uudelleen suorittaaksesi saman toiminnon. Perl voi kรคyttรครค tรคllaisia โ€‹โ€‹ulkoisia koodikirjastoja. Yksi parhaista kirjastoista on CPAN. Se tulee sanoista Comprehensive Perl Archive Network ja sisรคltรครค suuren mรครคrรคn Perl-moduuleja kรคytettรคvรคksi. Se on yhteisรถ tai verkosto, jossa on useita tรคllaisia โ€‹โ€‹moduuleja tarjoavia kehittรคjiรค. Asentamalla tuen CPAN-moduuleille perl-moduuliisi voit hyรถdyntรครค CPAN-moduuleja ja helpottaa tyรถtรคsi. Suurin osa Perl-moduuleista on kirjoitettu Perlillรค, jotkin kรคyttรคvรคt XS:รครค (ne kirjoitetaan C-kielellรค), joten vaativat C-kรครคntรคjรคn (tรคmรคn asennuksen saaminen on helppoa โ€“ รคlรค panikoi. Moduulit voivat olla riippuvaisia โ€‹โ€‹muista moduuleista (melkein aina CPAN:sta) ja ei voi asentaa ilman niitรค (tai ilman tiettyรค versiota). Alla olevien vaihtoehtojen dokumentaatio kannattaa lukea huolellisesti Hanki, pura, rakenna ja asenna moduuleja CPAN:sta helpottaaksesi muiden moduulien asentamista (kiitรคt meitรค myรถhemmin). App-cpanminus perl-moduulit, kirjoita komentoriville:

cpan App::cpanminus

cpan App::cpanminus Varmista, ettรค sinulla on Internet-yhteys, kun perl-moduuleja ladataan ja asennetaan.

cpan miinus -moduulien asennus

Asenna nyt mikรค tahansa moduuli:

cpan โ€“i <Module_Name>.		

Katsotaanpa esimerkkiรค moduulin asentamisesta File::Data(Se on liitรคntรค, jolla pรครคset tiedostotietoihin).

cpan miinus -moduulien asennus

Perl-muuttuja

Puhumme nyt muuttujista. Voit kuvitella muuttujan, kuten sรคiliรถn, joka sisรคltรครค yhden tai useamman arvon. Kun muuttujan nimi on mรครคritetty, se pysyy samana, mutta arvo tai arvot muuttuvat yhรค uudelleen ja uudelleen.

Muuttujia on 3 tyyppiรค:

Muuttujien tyypit Perlissรค

Muuttujien tyypit Perlissรค

Helpoimmat ovat skalaarit, ja tรคmรค on meidรคn tรคmรคn pรคivรคn aiheemme

Skalaarimuuttuja

Tรคmรคn tyyppisellรค muuttujalla on yksi arvo.

Sen nimi alkaa dollarimerkillรค ja Perl-tunnisteella (se on muuttujamme nimi).

Skalaarimuuttuja Perlissรค

Skalaarimuuttuja Perlissรค

Nimeรคmiskokous

Jos olet perehtynyt muihin ohjelmointikieliin, tiedรคt, ettรค muuttujien nimeรคmisessรค on tiettyjรค sรครคntรถjรค. Samoin Perlillรค on kolme sรครคntรถรค skalaarien nimeรคmiseen.

  1. Kaikki skalaarinimet alkavat $:lla. Jokaisen nimen etuliitteenรค on helppo muistaa $. Ajattele sitรค $skalaarina.
  2. Kuten PHP. ensimmรคisen merkin $ jรคlkeen, joka on erityistรค Perlissรค, aakkosnumeeriset merkit eli a - z, A - Z ja 0 - 9 ovat sallittuja. Myรถs alaviiva on sallittu. Kรคytรค alaviivaa jakaaksesi muuttujien nimet kahdeksi sanaksi. "Mutta ensimmรคinen merkki ei voi olla numero"
  3. Vaikka numerot voivat olla osa nimeรค, ne eivรคt voi tulla heti $:n jรคlkeen. Tรคmรค tarkoittaa, ettรค ensimmรคinen merkki $:n jรคlkeen on joko aakkoset tai alaviiva. ne tulevat C/C++ taustan pitรคisi pystyรค vรคlittรถmรคsti tunnistamaan samankaltaisuus. Esimerkkejรค

Perl esimerkki:

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

Nรคmรค eivรคt kuitenkaan ole laillisia skalaarimuuttujien nimiรค.

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

Yleissรครคntรถ sanoo, ettรค kun Perlillรค on vain yksi jostain, se on skalaari. Skalaarit voidaan lukea laitteista, ja voimme kรคyttรครค niitรค ohjelmissamme.

Kaksi skalaaritietotyyppiรค

  1. Numbers
  2. Jouset

Numbers:

Tรคmรคn tyyppisissรค skalaaritiedoissa voisimme mรครคrittรครค:

  • kokonaislukuja, se on yksinkertaisesti kokonaislukuja, kuten 2, 0, 534
  • liukulukuluvut, ne ovat reaalilukuja, kuten 3.14, 6.74, 0.333

Numeromuuttujat Perlissรค

Huomautus: Yleensรค Perl-tulkki nรคkee kokonaisluvut kuten liukulukuluvut. Jos esimerkiksi kirjoitat ohjelmiisi 2, Perl nรคkee sen olevan 2.0000

Kokonaisluku literaalit:

Se koostuu yhdestรค tai useammasta numerosta, joita edeltรครค valinnaisesti plus tai miinus ja joka sisรคltรครค alaviivoja.

Perl-esimerkkejรค:

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

Kuten nรคette - se ei ole mitรครคn erikoista. Mutta usko minua, tรคmรค on yleisin skalaarityyppi. Niitรค on kaikkialla.

Liukuluku literaalit:

Se koostuu numeroista, valinnaisesti miinus, desimaalipilkku ja eksponentti.

Perl-esimerkkejรค:

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

Liukulukulateraalit Perlissรค

Oktaali-, heksadesimaali- ja binรครคriesitys:

Se on vaihtoehto desimaalijรคrjestelmรคlle. Sallikaa minun nรคyttรครค sinulle oktaali-, heksadesimaali- ja binรครคriesitys. Lyhyessรค taulukossa on kaikki tรคrkeรคt tiedot nรคistรค oudoista tyyleistรค:

Edustus pohja Jatka
Octal 8 0 (nolla)
Heksadesimaali 16 0x
Binaarinen 2 0b

Perl-esimerkkejรค:

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

Kaikki nรคmรค arvot Perlille tarkoittavat samaa. Perl ei tallenna arvoja samassa muodossa. Se muuntaa sisรคisesti nรคmรค heksadesimaali-, binaari- ja oktaaliarvot desimaalilukuiksi.

Tehtรคvรค on yleisin skalaarioperaatio, ja se on hyvin yksinkertainen. Perl kรคyttรครค tรคtรค yhtรคlรคisyysmerkkiรค. Se ottaa lausekkeen arvon oikealta puolelta ja asettaa tรคmรคn arvon muuttujaamme.

Katsotaanpa esimerkkejรค:

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

Lisรคksi voit laittaa muuttujaan paitsi numeron myรถs lausekkeen.

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

Jouset

Kielet: Se on myรถs hyvin yksinkertainen skalaarityyppi.

Perl-merkkijonon enimmรคispituus riippuu tietokoneen muistin mรครคrรคstรค. Merkkijonon kokoa ei ole rajoitettu, mikรค tahansa mรครคrรค merkkejรค, symboleja tai sanoja voi muodostaa merkkijonosi. Lyhyimmรคssรค merkkijonossa ei ole merkkejรค. Pisin voi tรคyttรครค koko jรคrjestelmรคmuistin. Perl-ohjelmat voidaan kirjoittaa kokonaan 7-bittiseen ASCII-merkistรถรถn. Perl sallii myรถs minkรค tahansa 8- tai 16-bittisen merkistรถjen lisรครคmisen. ei-ASCII-merkkejรค merkkijonoliteraaaleissa. Perl on myรถs lisรคnnyt tuen Unicode UTF-8:lle.

Perlin merkkijonotyypit

Kuten numerot, myรถs merkkijonoja on kahta eri tyyppiรค:

  • Yksittรคiset lainausmerkit merkkijono literaalit
  • Double lainausmerkkijono literaaleja

Yksilainaiset merkkijonokirjaimet

Yksittรคisiรค lainausmerkkejรค kรคytetรครคn sisรคllyttรคmรครคn tiedot, jotka haluat ottaa kirjaimellisesti. Lyhyt esimerkki ja kaiken pitรคisi olla selvรครค:

Perl-esimerkkejรค:

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

lรคhtรถ:

se on $num

Tรคssรค yksittรคisten lainausmerkkien vuoksi $num in arvoa ei ole otettu ja kirjaimelliset merkit '$','n', 'u' ja 'm' lisรคtรครคn $txt:n arvoon.

Double-lainatut merkkijonokirjaimet

Double lainausmerkkejรค kรคytetรครคn liittรคmรครคn tietoja, jotka on interpoloitava ennen kรคsittelyรค. Tรคmรค tarkoittaa, ettรค pakotettuja merkkejรค ja muuttujia ei yksinkertaisesti lisรคtรค kirjaimellisesti myรถhempiin toimintoihin, vaan ne arvioidaan paikan pรครคllรค. Esc-merkkejรค voidaan kรคyttรครค rivienvaihtojen, sarkainten jne. lisรครคmiseen.

Perl-esimerkkejรค:

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

lรคhtรถ:

se on 7

Tรคssรค lainausmerkkien vuoksi arvo $num lisรคtรครคn arvoon $txt

Double-lainausmerkit interpoloivat skalaari- ja taulukkomuuttujia, mutta eivรคt tiivisteitรค. Toisaalta voit kรคyttรครค kaksoislainausmerkkejรค sekรค taulukoiden ettรค tiivisteiden osien interpoloimiseen.

Salaperรคinen \n

Harkitse seuraavaa ohjelmaa

Perl-esimerkkejรค:

print "hello \n";

lรคhtรถ:

hei

Perl ei nรคytรค vain "hello\n", vaan vain "hello". Miksi? Koska '\n' on erikoismerkki ja tarkoittaa, ettรค haluat siirtyรค uudelle riville, kun nรคytรคt tekstiรค ohjelmassasi. tulosta "hei\n uusi rivi"; Seuraava kysymys - onko muita erityisiรค merkkejรค? Kyllรค he ovat! Mutta รคlรค huoli - vain muutama. Tarkista alla oleva taulukko

Rakentaa Tuotetiedot
\n uusi rivi
\r palata
\t kieleke
\f muotosyรถttรถ
\b askelpalautin
\a soittokello
\e paeta
\ 007 mikรค tahansa oktaali ASCII-arvo (tรคssรค, 007 = kello)
\x7f mikรค tahansa hex-arvo (tรคssรค, 7f = poista)
\\ kenoviiva
\ โ€ kaksoislainaus
\l pieni seuraava kirjain
\L pienet kaikki seuraavat kirjaimet \E asti
\u iso seuraava kirjain
\U kaikki seuraavat kirjaimet isoilla kirjaimilla \E asti
\E Lopeta \L, \U

Tiedรคn, ei ole olemassa "vain muutamia"โ€ฆ Mutta usko minua, sinun tรคytyy tietรครค vain

Strings Variable

Se on sama operaatio, jonka nรคemme numeroiden mรครคrittรคmisessรค. Perl saa merkkijonomme yhtรคlรคisyysmerkin oikealta puolelta ja asettaa tรคmรคn merkkijonon muuttujaksi.

Perl-esimerkkejรค:

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

lรคhtรถ:

opetusohjelma 315

Kuten nรคet, voit laittaa numeroita ja merkkijonoja samoihin muuttujiin. Muuttujien luokkaa ei ole.

Merkkijonojen ketjutus (piste) :

Yhdistelmรคoperaattori "." yhdistรครค kaksi tai useampia kieliรค. Muistaa! Jos merkkijono sisรคltรครค lainausmerkkejรค, rivinvaihtoja, kenoviivaa, kaikki nรคmรค erikoismerkit on vaihdettava kenoviivalla.

Perl ' ' -muuttujien esimerkkejรค:

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

lรคhtรถ:

Tom on รคidin suosikkikissa

Jouset

"$a", "$b" ketjutetaan ja tallennetaan kohtaan "$c" kรคyttรคmรคllรค "." operaattori.

Lopussaโ€ฆ

Muunnos vรคlillรค Numbers ja jouset:

Kuten tiedรคt, Perl muuntaa automaattisesti numerot merkkijonoiksi tarpeen mukaan. Mistรค Perl tietรครค, mitรค tarvitsemme juuri nyt? Tรคmรค on yksinkertaista - kaikki riippuu operaattorista (puhumme operaattoreista myรถhemmin, nyt, hyvรคksy vain, ettรค operaattoreita on paljon, eri numeroilla ja merkkijonoilla) Jos operaattori odottaa numeroa, Perl kรคyttรครค arvoa numerona . Jos operaattori odottaa merkkijonoa, Perl kรคyttรครค arvoa merkkijonona. Toisin sanoen - sinun ei tarvitse huolehtia tรคllaisesta muuntamisesta. Lyhyt esimerkki ja kaiken pitรคisi olla selvรครค:

Perl-esimerkkejรค:

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

lรคhtรถ:

71

$merkkijonon arvo muunnetaan kokonaisluvuksi ja lisรคtรครคn $numeron arvoon.

Lisรคyksen tulos, 71, mรครคrรคtรครคn $resultille.

Muuttujan laajuus โ€“ Access Modifiers

Voimme ilmoittaa skalaarin missรค tahansa ohjelmassa. Mutta sinun on mรครคritettรคvรค pรครคsyn muokkaaja

Modifioreita on 3 tyyppiรค

  1. my
  2. paikallinen
  3. meidรคn

My: Tรคmรคn avulla voit ilmoittaa minkรค tahansa muuttujan, joka on spesifinen lohkossa. eli kiharoiden sisรคllรค.

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

Ei lรคhtรถรค

Ohjelman tulos ei ole mitรครคn!

PERL-opetusohjelma aloittelijoille - tรคydellinen opas

Yllรค olevassa esimerkissรค nรคet kaksi muuttujaa, joista toinen on if-lohkon sisรคllรค ($var_2) ja toinen If-lohkon ulkopuolella ($var). Muuttuja, joka on ilmoitettu lohkon ulkopuolella, on if-lohkon kรคytettรคvissรค, mutta if-lohkon sisรคllรค ilmoitettu muuttuja ei ole ulomman ohjelman kรคytettรคvissรค.

Paikallinen: Tรคmรคn avulla voimme itse asiassa peittรครค samat muuttujan arvot eri arvoiksi muuttamatta muuttujan alkuperรคistรค arvoa. Oletetaan, ettรค meillรค on muuttuja $a, jonka arvoksi on annettu 5, voit itse muuttaa sen muuttujan arvoa saman muuttujan ilmoittaminen uudelleen paikallisella avainsanalla muuttamatta muuttujan alkuperรคistรค arvoa, joka on 5. Katsotaanpa, miten tรคmรค toimii esimerkin avulla.

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

Yllรค olevan ohjelman tulos on tรคllรค tavalla.

paikallinen, $var = 3

globaali, $var = 5

Nรคin voimme muuttaa muuttujan arvoa vaikuttamatta alkuperรคiseen arvoon.

Meidรคn: Kun muuttuja on ilmoitettu pรครคsymuuntimella "our", sitรค voidaan kรคyttรครค koko paketissa. Oletetaan, ettรค sinulla on Perl-moduuli tai paketti test.pm, jossa on muuttuja, jonka laajuus on meidรคn. Tรคtรค muuttujaa voidaan kรคyttรครค millรค tahansa komentosarjalla, joka kรคyttรครค kyseistรค pakettia.

Jos olet tosissaan ohjelmoinnissa Perlissรค, sinun tulee aloittaa ohjelmasi

#!/usr/local/bin/perl

kรคytรค tiukasti;

Tรคmรค auttaa sinua kirjoittamaan parempaa ja selkeรคmpรครค koodia. "Kรคytรค tiukkaa" ottaa kรคyttรถรถn tiukan kรคytรคnnรถn, joka saa sinut ilmoittamaan muuttujasi avainsanallani.

Tรคmรค on hyvรค ohjelmointikรคytรคntรถ

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

Tulos: Virhe

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

lรคhtรถ:

10

Perl Array

Mikรค on Perl Array?

Array on erityinen muuttuja, joka tallentaa tiedot luettelon muodossa; jokaiseen elementtiin pรครคsee kรคsiksi kรคyttรคmรคllรค indeksinumeroa, joka on yksilรถllinen jokaiselle elementille. Voit tallentaa taulukkoosi numeroita, merkkijonoja, kelluvia arvoja jne. Tรคmรค nรคyttรครค hyvรคltรค, joten kuinka luomme taulukon Perlissรค? Perlissรค voit mรครคrittรครค taulukon kรคyttรคmรคllรค @-merkkiรค ja nimeรค, jonka haluat antaa. Harkitsemme taulukon mรครคrittรคmistรค Perlissรค.

minun @array;

Nรคin mรครคrittelemme taulukon Perlissรค; saatat miettiรค, kuinka meidรคn tรคytyy tallentaa tietoja siihen. On olemassa erilaisia โ€‹โ€‹tapoja tallentaa tietoja taulukkoon. Tรคmรค riippuu siitรค, kuinka aiot kรคyttรครค sitรค.

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

lรคhtรถ:

abcd

Tรคmรค on taulukko, jossa on 4 elementtiรค.

Taulukkoindeksi alkaa 0:sta ja pรครคttyy ilmoitettuun enimmรคiskokoonsa, tรคssรค tapauksessa indeksin enimmรคiskoko on 3.

Perl Array esimerkki

Perl Array esimerkki

Voit myรถs ilmoittaa taulukon yllรค olevalla tavalla; Ainoa ero on se, ettรค se tallentaa tiedot taulukkoon pitรคen vรคlilyรถnnin erottimena. Tรคssรค qw() tarkoittaa lainaussanaa. Tรคmรคn toiminnon merkitys on luoda sanaluettelo. Voit kรคyttรครค qw:tรค useilla tavoilla taulukon ilmoittamiseen.

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

lรคhtรถ:

abcdpqrsvxyz

Oletetaan, ettรค haluat mรครคrittรครค arvon 5:lleth taulukon elementti, miten aiomme tehdรค sen.

$array [4] ='e';

Sequential Array

Perรคkkรคiset taulukot ovat niitรค, joihin tallennat tietoja perรคkkรคin. Oletetaan, ettรค haluat tallentaa taulukkoon 1-10 numeroa tai aakkosta az. Sen sijaan, ettรค kirjoittaisit kaikki kirjaimet, voit kokeilla jotain alla olevaa -

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

lรคhtรถ:

12345678910

Perl Array Koko

Meillรค on taulukko, joka on jo saatavilla, etkรค tiedรค, mikรค sen koko on, joten mikรค on mahdollinen tapa lรถytรครค se.

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

Voimmeko saada taulukon koon ilman funktioita? Kyllรค me voimme.

@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

lรคhtรถ:

5

5

Dynaaminen Array

Yllรค olevaa menetelmรครค taulukon ilmoittamiseksi kutsutaan staattiset taulukot, jossa tiedรคt taulukon koon.

Mikรค on Dynamic Array?

Dynaamiset taulukot ovat sellaisia, jotka mรครคritรคt mรครคrittรคmรคttรค niille mitรครคn arvoa. Joten milloin tarkalleen tallennetaan arvot kyseiseen taulukkoon? Yksinkertaista, sรคilytรคmme ne ajon aikana. Tรคssรค on yksinkertainen ohjelma sitรค varten.

Kรคytรคmme joitain sisรครคnrakennettuja Perl-toimintoja tรคmรคn tehtรคvรคn suorittamiseen.

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

lรคhtรถ:

Tรคmรค on

erรครคnlainen dyn

mic

rr

y

Split-funktio jakaa merkkijonon sisรคllรถn taulukoksi sille annetun erottimen perusteella. Tรคmรค toiminto poistaa myรถs erottimen merkkijonosta, tรคssรค tapauksessa se on 'a';

Push, Pop, shift, unshift Perl-taulukoille:

Nรคitรค toimintoja voidaan kรคyttรครค Perlissรค taulukon elementtien lisรครคmiseen/poistamiseen.

  • Perl Push: lisรครค taulukkoelementin olemassa olevan taulukon loppuun.
  • Perl Pop: poistaa viimeisen elementin taulukosta.
  • Perl Shift: poistaa ensimmรคisen elementin taulukosta.
  • Perl Unshift: lisรครค elementin taulukon alkuun.

Array toimii Perlissรค

Katsotaanpa esimerkkiรค, jossa voimme kรคyttรครค alla olevia toimintoja.

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

lรคhtรถ:

1.: ma ti ke

2. kun tyรถntรถ: ma ti ke to

3. kun vuoro pois : pe ma ti ke to

4. kun pop : pe ma ti ke

5. kun vuoro: ma ti ke

Perl Hashes

Miksi tarvitsemme Hashia?

Olemme jo oppineet skalaareista ja taulukoista aiemmissa osioissa.

Mitรค skalaarit tarkalleen ottaen tekevรคt? Se tallentaa vain kokonaislukuja ja merkkijonoja.

Mitรค taulukot tarkalleen ottaen tekevรคt? Se on kokoelma skalaareja, jossa pรครคset jokaiseen taulukon elementtiin indeksien avulla. Mutta onko hyvรค idea kรคyttรครค taulukkoa, kun sinulla on satoja ja tuhansia tietueita? Unohdamme millรค indeksillรค on mikรค arvo. Tรคmรคn tilanteen voittamiseksi meillรค on jotain perl hashin kaltaista.

Mitรค hashit ovat?

Hashissa voi myรถs olla niin monta skalaaria kuin matriisi mahtuu. Ainoa ero on, ettรค meillรค ei ole indeksiรค, vaan meillรค on avaimet ja arvot. Hash voidaan ilmoittaa, alkaen %:sta, jota seuraa tiivisteen nimi. Katsotaanpa esimerkki siitรค, kuinka voimme mรครคritellรค Perl-hashin ja kuinka voimme erottaa sen taulukosta

Harkitse esimerkkiรค kolmesta ihmisestรค ja heidรคn ikรคnsรค on esitetty taulukossa.

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

lรคhtรถ:

Sainath33Krishna24Shruthi25

Tรคllรค tavalla on vaikea tietรครค yksittรคisiรค iรคt, koska meidรคn on muistettava sekรค kaikkien ihmisten nimien hakemistopaikat ettรค iรคt. Se voi olla yksinkertaista, kun sinulla on 3 nimeรค, mutta kun sinulla on 1000 tai enemmรคn? Tiedรคt vastauksen.

Hashit Perlissรค

Tรคmรคn voimme voittaa kรคyttรคmรคllรค tiivistettรค.

Hash-esimerkki:

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.

lรคhtรถ:

Sainath33Krishna24Shruthi25Sainath33Krishna24Shruthi25

Olemme nyt julistaneet hashin, hienoa!! Mutta miten pรครคsemme kรคsiksi tai tulostamme sen? Jokaiseen hash-elementtiin tulee pรครคstรค kรคsiksi siihen liittyvรคllรค avaimella, jolle annetaan arvo. Hashissa on siis yksi-yksi-kuvaus kunkin avaimen ja arvon vรคlillรค.

Jotta voit tulostaa jonkun henkilรถn iรคn, sinun tarvitsee vain muistaa kyseisen henkilรถn nimi.

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

Olet ehkรค ihmetellyt, miksi kรคytin $hash{KeyName}. Muista, ettรค hash on jรคlleen kokoelma skalaareja. Joten voimme kรคyttรครค dollaria, joka edustaa skalaaria, pรครคstรคksemme jokaiseen hash-elementtiin.

Esimerkki Hashista Perlissรค

Huomautus: Jokaisen hash-avaimen tulee olla yksilรถllinen tai muuten se ohittaa aiemmin mรครคritetyn arvon.

Kuinka voimme mรครคrittรครค tiivisteen toiselle hashille? Yksinkertaista, samalla tavalla kuin meillรค

Voimme myรถs tulostaa koko hashin.

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

lรคhtรถ:

Tom23

Lisรครค Perl Hashes

Kuten nรคet, meillรค on jo hash %newHash, ja nyt meidรคn on lisรคttรคvรค siihen lisรครค merkintรถjรค.

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

lรคhtรถ:

Jim25John26Harry27

Perl Delete -avain

Haluat ehkรค poistaa merkinnรคn hashista. Nรคin voimme tehdรค sen.

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

Poista on Perlin sisรครคnrakennettu toiminto. Tรครคllรค nรคemme esimerkin hajautusarvon mรครคrittรคmisestรค taulukkoon.

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

Huomautus: Aina kun tulostat tiivisteen tai tallennat tiivisteen taulukkoon. Jรคrjestys voi aina vaihdella. Se ei ole aina sama.

Voimme mรครคrittรครค taulukolle vain tiivisteen avaimia tai arvoja.

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

Jos haluat poistaa kaikki merkinnรคt hashista, voimme mรครคrittรครค hashin suoraan nollaksi.

%newHash=();# Tรคmรค mรครคrittรครค hajautusarvon uudelleen ilman merkintรถjรค.

Perlin ehdolliset lausekkeet

Voimme kรคyttรครค ehdollisia lausekkeita Perlissรค. Joten mitรค ovat ehdolliset lausunnot? Ehdolliset lausunnot ovat niitรค, joissa itse asiassa tarkistat, tรคyttyvรคtkรถ koodisi tietyt olosuhteet.

Ajattele esimerkkiรค, ostat hedelmiรค, etkรค pidรค hinnasta yli 100 taalaa. Joten sรครคntรถ tรคssรค on 100 taalaa.

Perl tukee kahdenlaisia โ€‹โ€‹ehdollisia lausekkeita; ne ovat jos ja elleivรคt.

Perl If

Jos koodilohko suoritetaan, kun ehto on tosi.

Perlin ehdolliset lausekkeet

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

lรคhtรถ:

5

Perl jos muuten

Tรคmรค nรคyttรครค hyvรคltรค. Ajatellaanpa tilannetta, jossa $a ei ole 5.

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

lรคhtรถ:

Arvo on 10 โ€“ FAIL

Tรคllรค tavalla voimme hallita vain yhtรค ehtoa kerrallaan. Onko se rajoitus? Ei, voit myรถs hallita erilaisia โ€‹โ€‹ehtoja kรคyttรคmรคllรค ifโ€ฆ elsif โ€ฆ else.

Perl Else If

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

lรคhtรถ:

Suoritettu elsif-lohko โ€“ Arvo on 5

Yllรค olevassa tapauksessa elsif-lohko suoritetaan, kun $a on yhtรค suuri kuin 5.

Saattaa olla tilanteita, joissa sekรค if- ettรค elsif-koodilohkot epรคonnistuvat. Tรคssรค skenaariossa else-koodilohko suoritetaan. Voit itse asiassa poistaa else-koodin tarkistuksen, jos et halua sisรคllyttรครค siihen.

Perl sisรคkkรคinen If

Tรคssรค tapauksessa voit kรคyttรครค if-koodilohkoa yhdessรค if-koodilohkossa.

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

lรคhtรถ:

Ensimmรคisen muun lohkon sisรคllรค โ€“ Arvo on 1

Suorita sama koodi muuttamalla $a:n arvoa; voit selvittรครค loput.

Perl Ellei

Sinulla on jo kรคsitys mitรค jos tekee (jos ehto on tosi, se suorittaa koodilohkon). Ellei se ole pรคinvastainen kuin if, ellei koodilohko suoritetaan, jos ehto on epรคtosi.

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

lรคhtรถ:

Ensimmรคisen muun lohkon sisรคllรค โ€“ Arvo on 1

Arvaa mikรค on tulos. Olet oikeassa!!!!!. Tulos on else-lohkon print-lause. Ehdon vuoksi, ellei koodilohko ole tosi, muista, ellei lohko suoriteta vain, jos ehto on epรคtosi. Muuta $a:n arvoa ja suorita koodi, niin nรคet eron.

Perl Kรคyttรคmรคllรค if

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

lรคhtรถ:

Muun lohkon sisรคllรค

Kรคyttรครค ellei

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

lรคhtรถ:

Sisรคllรค, ellei Block

Perl Loops - ohjausrakenteet

Perl tukee ohjausrakenteita, jotka ovat samanlaisia โ€‹โ€‹kuin muut ohjelmointikielet. Perl tukee neljรครค tyyppiรค ohjausrakenteita foreach, while ja till. Kรคytรคmme nรคitรค lauseita toistuvasti jonkin koodin suorittamiseen.

Silmukalle Perl

Koodilohko suoritetaan, kunnes ehto tรคyttyy. Otetaan esimerkki siitรค, kuinka Perl silmukkaa taulukon.

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

lรคhtรถ:

Taulukon indeksin 0 arvo on 1

Taulukon indeksin 1 arvo on 2

Taulukon indeksin 2 arvo on 3

Taulukon indeksin 3 arvo on 4

Taulukon indeksin 4 arvo on 5

Taulukon indeksin 5 arvo on 6

Taulukon indeksin 6 arvo on 7

Taulukon indeksin 7 arvo on 8

Taulukon indeksin 8 arvo on 9

Taulukon indeksin 9 arvo on 10

Tรคssรค ()-lausekkeessa on mukana monia lauseita. Jokaiselle niistรค on oma merkitys.

for ( alustus ; ehto; lisรคys)

Tรคssรค on toinen tapa kรคyttรครค.

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

lรคhtรถ:

1n

2n

3n

4n

5n

6n

7n

8n

9n

10n

Perl Foreach

Jokaiselle lausekkeelle voidaan kรคyttรครค samalla tavalla kuin lauseketta; Suurin ero on, ettรค meillรค ei ole kunnon tarkistusta ja lisรคystรค tรคssรค.

Otetaan sama esimerkki foreach perlin kanssa.

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

lรคhtรถ:

Arvo on 1

Arvo on 2

Arvo on 3

Arvo on 4

Arvo on 5

Arvo on 6

Arvo on 7

Arvo on 8

Arvo on 9

Arvo on 10

Foreach ottaa taulukon jokaisen elementin ja mรครคrittรครค sen arvon $var:lle jokaiselle iteraatiolle. Voimme myรถs kรคyttรครค $_ samaan.

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

lรคhtรถ:

Arvo on 1

Arvo on 2

Arvo on 3

Arvo on 4

Arvo on 5

Arvo on 6

Arvo on 7

Arvo on 8

Arvo on 9

Arvo on 10

Tรคmรค nรคyttรครค hyvรคltรค matriisiin pรครคsyรค varten. Entรค tiiviste, miten saamme hajautusavaimet ja arvot foreachilla?

Voimme kรคyttรครค foreachia pรครคstรคksemme kรคsiksi hashin avaimiin ja arvoihin silmukoimalla sitรค.

Silmukalle Perlissรค

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

lรคhtรถ:

Mickey

Tomi

Jerry

Saatat ihmetellรค, miksi kรคytimme avaimia foreach(). Keys on Perlin sisรครคnrakennettu toiminto, jolla voimme nopeasti kรคyttรครค hashin avaimia. Entรค arvot? Voimme kรคyttรครค arvot-funktiota hajautusarvon arvojen saamiseen.

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

lรคhtรถ:

arvo on 24

arvo on 23

arvo on 25

Perl While

Perl While -silmukka on ohjausrakenne, jossa koodilohko suoritetaan, kunnes ehto on tosi.

Koodilohko poistuu vain, jos ehto on epรคtosi.

Otetaan esimerkki Perl While -silmukasta.

Vaikka silmukka Perlissรค

Tรคssรค on ongelma, joka vaatii kรคyttรคjรคn syรถtteen ja poistu vasta numerosta 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"

lรคhtรถ:

Arvaa numero vรคliltรค 1-10

9

Arvaa numero vรคliltรค 1-10

5

Arvaa numero vรคliltรค 1-10

7

Arvasit onnennumeron 7

Yllรค olevassa esimerkissรค while-ehto ei ole tosi, jos syรถtรคmme muun syรถtteen kuin '7'.

Jos nรคet kuinka while toimii tรครคllรค, koodilohko suoritetaan vain, jos ehto hetken kuluttua on tosi.

Perl do-while

Do while -silmukka suoritetaan ainakin kerran, vaikka while-osion ehto olisi epรคtosi.

Otetaan sama esimerkki kรคyttรคmรคllรค do while -toimintoa.

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

lรคhtรถ:

10

9

8

7

6

5

4

3

2

1

Nyt arvo on pienempi kuin 1

Perl asti

Kunnes-koodilohko on samanlainen kuin ellei ehdollisessa lauseessa. Tรคssรค koodilohko suoritetaan vain, jos ehto lohkossa on epรคtosi.

Otetaanpa sama esimerkki, jota kรคytimme jonkin aikaa.

Tรคssรค on ongelma, joka vaatii syรถtteen kรคyttรคjรคltรค ja joka ei poistu ennen kuin annettu nimi on muu kuin "sai".

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

lรคhtรถ:

Kirjoita mikรค tahansa nimi sai

Perl tehdรค kunnes:

Do till -toimintoa voidaan kรคyttรครค vain, kun edellytyksenรค on oltava epรคtosi, ja se tulee suorittaa vรคhintรครคn kerran.

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

lรคhtรถ:

Kirjoita mikรค tahansa nimi Howard

Kirjoita mikรค tahansa nimi Sheldon

Kirjoita mikรค tahansa nimi sai

Suorita esimerkkikoodit while, do-while, till ja do-until nรคhdรคksesi eron.

Perl OperaTor

Mikรค on OperaTor?

Operatorit tietokonekielellรค osoittavat toimintoa, joka voidaan suorittaa joillekin muuttujille tai arvoille, joita tietokone ymmรคrtรครค. Perl on sisรคllyttรคnyt suurimman osan Operatorit C-kielestรค. Perlissรค on monia operaattoreita muihin ohjelmointikieliin verrattuna. Operatorit luokitellaan aritmeettisiin, loogisiin, relaatiooperaattoreihin ja osoitusoperaattoreihin.

Aritmeettinen Operatorit:

Aritmeettiset operaattorit ovat niitรค, joita voidaan kรคyttรครค joidenkin matemaattisten perusoperaatioiden suorittamiseen. Nรคmรค aritmeettiset operaattorit ovat binรครคrioperaattoreita, joissa tarvitsemme kaksi argumenttia perusoperaation suorittamiseen. Voimme kรคyttรครค unaarioperaattoreita myรถs muihin perustoimintoihin; nรคet eron alla olevista esimerkeistรค.

OperaTor Tuotetiedot esimerkki

+

Lisรคystoiminto, jota kรคytetรครคn kahden arvon tai muuttujan lisรครคmiseen

arvoja pitรคmรคllรค

$x = 5+6; # tai

$y = 6;

$z=$x+$y;

-

Vรคhennysoperaattori, jota kรคytetรครคn kahden arvon tai muuttujan pitoarvojen vรคhentรคmiseen

$x = 6-5; # tai

$y = 6;

$z=$x-$y;

*

Kertolaskuoperaattori, jota kรคytetรครคn kahden arvon tai muuttujan pitoarvojen kertomiseen

$x=6*5; # tai

$y = 6;

$z=$x*$y;

/

Jakooperaattori, jota kรคytetรครคn kahden arvon tai muuttujan pitoarvojen jakamiseen

$x = 36/6; # tai

$y = 6;

$z=$x/$y;

**

Eksponenttioperaattori, jota kรคytetรครคn eksponentin ja arvon saamiseen.

Esim: 22 = 43 = 27

$x=5**5; # tai

$x = 4;

$y = 2;

$z=$x**$y;

%

Modulus-operaattoria kรคytetรครคn muistutuksen saamiseen kahden arvon tai muuttujan jakamisen aikana

$x = 5%2; # tai

$x = 10;

$y = 2;

$z=$x % $y;

++

Unaarinen summausoperaattori, joka lisรครค muuttujan arvoa yhdellรค

$x = 5;

$x++;

Or

++$x;

-

Unaarinen Vรคhennysoperaattori, joka pienentรครค muuttujan arvoa yhdellรค

$x = 5;

$xโ€“; # viestivรคhennys

Or

โ€“$x;# esivรคhennys

Esimerkki kaikkien yllรค olevien toimintojen suorittamisesta.

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

lรคhtรถ:

Lisรคys 10 ja 2 on 12

Ali 10:stรค ja 2:sta on 8

Mul 10 ja 2 on 20

Jako 10 ja 2 on 5

Exp 10 ja 2 on 100

Mod of 10 ja 2 on 0

Toimeksianto Operatorit:

Tehtรคvรคoperaattorit yksinkertaisesti antavat arvoja muuttujille, mutta tรคssรค on vielรค yksi asia, joka meidรคn on muistettava: mรครคritysoperaattorit suorittavat myรถs aritmeettisia operaatioita ja antavat uuden arvon samalle muuttujalle, jolle toiminto suoritetaan.

OperaTor Tuotetiedot esimerkki

+=

Lisรคysoperaattori, jota kรคytetรครคn arvon lisรครคmiseen ja mรครคrittรคmiseen samalle muuttujalle

$x = 4;

$x+=10;

-=

Vรคhennysoperaattori, jota kรคytetรครคn vรคhentรคmรครคn ja antamaan arvo samalle muuttujalle

$x = 4;

$x-=10;

*=

Kertolaskuoperaattori, jota kรคytetรครคn arvon lisรครคmiseen ja mรครคrittรคmiseen samalle muuttujalle

$x = 4;

$x*=10;

/=

Jakooperaattori, jota kรคytetรครคn jakamiseen ja arvon mรครคrittรคmiseen samalle muuttujalle

$x = 4;

$x/=10;

** =

Eksponenttioperaattori, jota kรคytetรครคn eksponentin saamiseen ja arvon mรครคrittรคmiseen samalle muuttujalle

$x = 4;

$x**=10;

%=

Modulus-operaattori, jota kรคytetรครคn muistutuksen saamiseen jaon aikana ja arvon mรครคrittรคmiseen samalle muuttujalle

$x = 10;

$x%=4;

Esimerkki kaikkien yllรค olevien toimintojen suorittamisesta.

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

lรคhtรถ:

Lisรครค = 15

Ala = 10

Mul = 50

Div = 10

Looginen ja suhteellinen Operatorit:

Perl kรคyttรครค loogisia operaattoreita numeroiden ja merkkijonojen vertailuun. Useimmiten ehdollisissa lauseissa kรคytetรครคn loogisia operaattoreita.

Looginen ja suhteellinen OperaTors Perlissรค

Looginen ja suhteellinen OperaTors Perlissรค

OperaTor Tuotetiedot

==tai ekv

Operatorilla tarkistetaan, ovatko molemmat muuttujat yhtรค suuret

!=Tai ei

Operatorilla tarkistetaan, eivรคtkรถ molemmat muuttujat ole samat

> tai gt

Operator tapana tarkistaa onko

A on suurempi kuin B

<or lt

Operator tapana tarkistaa onko

A on pienempi kuin B

>=tai ge

Operator tapana tarkistaa onko

A on suurempi tai yhtรค suuri kuin B

<=tai le

Operator tapana tarkistaa onko

A on pienempi tai yhtรค suuri kuin B

|| tai tai

Operakรคytetรครคn tarkistamaan joko A:n tai B:n pitoarvo

&&tai ja

Operatorilla, jolla tarkistetaan sekรค A:n ettรค B:n pitoarvo

Otetaan esimerkki, jossa voimme selittรครค kaikki skenaariot.

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

lรคhtรถ:

Totta - yhtรค kuin 5 ja 5

Totta - ei ole yhtรค suuri kuin 6 ja 7

Totta - 7 suurempi kuin 6

Totta - 6 vรคhemmรคn kuin 7

Totta - 6 vรคhemmรคn kuin 7

Totta - 7 suurempi kuin 6

Voit nรคhdรค esimerkkejรค loogisista operaattoreista myรถhemmissรค osioissa.

Perlin erikoismuuttujat

Mikรค on Perlin erikoismuuttujat?

Erikoismuuttujat Perlissรค ovat niitรค, joilla on jokin ennalta mรครคrรคtty merkitys. Nรคmรค muuttujat on merkitty joko oikealla nimellรค tai vรคlimerkkisymboleilla. Meillรค on erityinen muuttuja kaikille Perl-tuetuille muuttujille, kuten skalaari-erikoismuuttujat, Array-erikoismuuttujat, hash-erikoismuuttujat. Suurin osa kรคyttรคmistรคmme erikoismuuttujista on skalaareja.

Kun haluamme kรคyttรครค erikoismuuttujaa sen nimen kanssa, meidรคn on ladattava Perl-moduuli 'kรคytรค englantia', jotta Perl-tulkki sanotaan nimenomaisesti, ettรค aiomme kรคyttรครค erikoismuuttujia sen Nimen avulla.

Skalaari-erikoismuuttujat

Muuttuja Tuotetiedot

$_$ARG

Tรคmรค on oletusmuuttuja, joka tallentaa nykyiset arvot.

$0 tai $PROGRAM_NAME

Tallentaa Perl-komentosarjan tiedostonimen.

$/

Syรถtetietueen erotin, tรคmรคn oletusarvo on \n, joka on rivinvaihtomerkki

$.

Sisรคltรครค luettavan tiedoston nykyisen rivinumeron

$,

Tulostuskentรคn erotin, jota kรคytetรครคn pรครคasiassa print()-kรคskyssรค. Tรคmรคn oletusarvoksi on asetettu 0, voimme muuttaa tรคmรคn muuttujan arvoa.

$\

Tulostietueen erotin, tรคmรคn muuttujan arvo on tyhjรค; voimme antaa tรคlle minkรค tahansa arvon, jota print()-kรคsky kรคyttรครค tulostettaessa.

$#

Tรคtรค muuttujaa kรคytetรครคn tulostemuodossa numeroita tulostettaessa.

$%$FORMAT_PAGE_NUMBER

Sรคilyttรครค luetun tiedoston nykyisen sivunumeron.

$=$FORMAT_LINES_PER_PAGE

Sรคilyttรครค luetun tiedoston nykyisen sivun pituuden.

$-$FORMAT_LINES_LEFT

Sรคilyttรครค sivulta tulostettavien rivien mรครคrรคn.

$~$FORMAT_NAME

Format Name: Sรคilyttรครค parhaillaan valitun lรคhdรถn muodon oletusarvoisesti tiedoston kahvan nimen.

$^$FORMAT_TOP_NAME

Sรคilyttรครค tiedostokรคsittelijรคn otsikkomuodon arvon, oletusarvo on _TOP, jota seuraa tiedostokahvan nimi.

$|$OUTPUT_AUTOFLUSH

Oletusarvo on nolla; tรคtรค kรคytetรครคn tulostuspuskurin tyhjentรคmiseen jokaisen write() tai print() jรคlkeen.

$$

Pitรครค Perl-tulkin kรคynnissรค olevan prosessin numeron.

$?

Tilakoodi: Putki- ja jรคrjestelmรคkutsu. Suoritetun komennon palautustila.

$&$MATCH

Sรครคnnรถllisissรค lausekkeissa kรคytettynรค tรคmรค sisรคltรครค merkkijonon viimeisestรค onnistuneesta kaavavastaavuudesta.

$`$ PREMATCH

Sรครคnnรถllisissรค lausekkeissa kรคytettynรค tรคmรค sisรคltรครค merkkijonon, jota edeltรครค viimeinen onnistunut kaavaosuma.

$'$ POSTMATCH

Sรครคnnรถllisissรค lausekkeissa kรคytettynรค tรคmรค sisรคltรครค merkkijonon, jota seuraa viimeinen onnistunut kaavaosuma.

$+$LAST_PAREN_MATCH

Sรคilyttรครค viimeisen hakasulkeen merkkijonon, joka vastaa viimeistรค kuviohakua.

$

$1, $2, $3โ€ฆ. Pitรครค kuvion arvot jรคrjestyksessรค.

$[

Ensimmรคinen indeksi: Array, alimerkkijono.

$]

Versio Perlistรค.

$โ€

Luetteloelementtien erotin, oletusarvo on vรคlilyรถnti.

$;

Alaindeksien erotin, jota kรคytetรครคn moniulotteisissa taulukoissa

$!

Numeerisessa kontekstissa tulostaa virhenumeron. Tulosta virhe merkkijonokontekstissa.

$@

Sรคilyttรครค syntaksivirhetiedot, joita kรคytetรครคn, kun eval() on kรคytรถssรค.

$<

Sillรค on komentosarjaa suorittavan prosessin todellinen UID (kรคyttรคjรคtunnus).

$>

Sisรคltรครค komentosarjaa suorittavan prosessin tehokkaan UID:n.

$(

Sillรค on komentosarjaa suorittavan prosessin todellinen GID (ryhmรคtunnus).

$)

Sรคilyttรครค komentosarjaa suorittavan prosessin tehokkaan GID:n.

$^D$VIRHEISTUS

Sรคilyttรครค virheenkorjauslippujen nykyisen arvon.

$^C

Sรคilyttรครค lipun nykyisen arvon, kun -c-komentorivikytkintรค kรคytetรครคn.

$^F

Jรคrjestelmรคtiedostojen enimmรคiskuvaaja on oletusarvona 2

$^I$INPLACE_EDIT

Sรคilyttรครค komentorivikytkimen โ€“i arvon.

$^M

Erikoismuistivarastoa voidaan kรคyttรครค, kun Perl-skripti kuolee muistin loppumisen vuoksi.

$^O$OSNAME

Operajรคrjestelmรคtiedot tallennetaan. 'Linux' Linux-jรคrjestelmille, 'mswin32' Windows jรคrjestelmรคt.

$^T$BASETIME

Aika, jolloin skriptit ovat kรคynnissรค sekunneissa.

$^W$VAROITUS

-w-komentorivikytkimen nykyinen arvo. Varoituskytkin.

$ARGV

Nykyisen tiedoston nimi, kun <> on kรคytรถssรค.

Array-erikoismuuttujat:

Muuttuja Tuotetiedot

@INC

Sisรคltรครค luettelon poluista, joissa Perl-kirjastomoduuleja tai komentosarjoja voidaan tarkastella suoritettaessa nykyistรค komentosarjaa. Tรคtรค @INC:tรค kรคytetรครคn useissa ja vaativat kรคskyt nรคiden kirjastomoduulien polkujen tutkimiseen.

@ARGV

Tallentaa vรคlitetyt komentoriviargumentit.

@_

Kรคytetรครคn aliohjelmissa, kun parametrit vรคlitetรครคn aliohjelmille.

@F

Tรคmรค on matriisi, johon syรถttรถrivit tallennetaan, kun automaattinen split โ€“a (kรคytetรครคn komentorivikytkintรค).

Hash-erikoismuuttujat:

Muuttuja Tuotetiedot

%INC

Tiedostonimi on avaimet; arvot ovat polku kyseisiin tiedostoihin. Kรคytรถssรค tee, kรคytรค ja vaadi.

%ENV

Jรคrjestelmรคn ympรคristรถmuuttujat.

%SIG

Signals kรคsittelijรค.

Perl sรครคnnรถllinen lauseke

Mikรค on sรครคnnรถllinen lauseke?

Perl-sรครคnnรถllinen lauseke on riittรคvรคn vahva sovittamaan lauseen tai lausekkeiden ryhmรคn merkkijonokavoja. Sรครคnnรถllisiรค lausekkeita kรคytetรครคn enimmรคkseen tekstin jรคsentรคmiseen, kuvioiden sovittamiseen ja paljon muuhun vaatimukseen perustuen. Meillรค on tiettyjรค operaattoreita, joita kรคytetรครคn erityisesti sรครคnnรถllisen lausekkeen kuvion sitomisessa =~ ja !~. Nรคmรค ovat testi- ja mรครคritysoperaattoreita.

Sรครคnnรถllinen lauseke OperaTors

Sรครคnnรถllinen lauseke OperaTors Perlissรค

Sรครคnnรถllinen lauseke OperaTors Perlissรค

  • Perl Match โ€“ m//
  • Perl-korvike โ€“ s///
  • Perl transliteraatti โ€“ tr///

Ennen kuin jatkamme eteenpรคin, meidรคn on tiedettรคvรค muutamia asioita sรครคnnรถllisestรค lausekkeesta; Perl Regex -syntaksissa on tiettyjรค asioita, kuten metamerkkejรค, yleismerkkejรค.

Char Merkitys

\

Erikois tai lainaus

*

Vastaa 0 tai useampia merkkiรค

+

Vastaa 1 tai useampia merkkiรค

?

Vastaa 0 tai 1 merkkiรค

|

Voidaan kรคyttรครค vaihtoehtoisten kuvioiden yhdistรคmiseen

()

Kรคytetรครคn sovitetun kuvion tallentamiseen

[]

Joukko merkkejรค voidaan vรคlittรครค. Kรคytetรครคn erityisesti numeroille ja aakkosille.

{}

Kรคytetรครคn kertomaan, kuinka monta kertaa ottelu voidaan suorittaa.

^

Merkkijonon alku

$

Merkkijonon loppu

\w

Kรคytetรครคn vastaamaan yksittรคistรค merkkiรค tai sanaa, joka voi olla aakkosnumeerinen, mukaan lukien "_"

\W

Vastaa mitรค tahansa muuta kuin aakkosnumeerista

\s

Kรคytetรครคn vastaamaan vรคlilyรถntejรค

\S

Vastaa mitรค tahansa muuta kuin vรคlilyรถntiรค

\d

Vastaa numeroita. Ei desimaaliarvoja ja negatiivisia arvoja

\D

Yhdistรค mitรค tahansa muuta kuin numeroita.

\t

Yhdistรค vรคlilehtitila

\n

Vastaa rivinvaihtoa

Yllรค olevat merkit ovat joukko merkkejรค, joita voidaan kรคyttรครค kuvioiden sovituksen aikana.

Katsotaanpa muutamia esimerkkejรค.

Tarkastellaan tilannetta, jossa kรคyttรคjรค syรถttรครค jonkin verran komentosarjan suorittamisen aikana, ja haluamme tarkistaa, syรถttikรถ kรคyttรคjรค jonkin nimen syรถtteeksi vai ei. Meidรคn on kirjoitettava sรครคnnรถllinen lausekkeen syntaksi poimiaksemme nimesi ja tulostaaksemme sen.

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

lรคhtรถ:

Lรถytyi kuvio

Tรคssรค olemme kirjoittaneet sรครคnnรถllisen lausekkeen muodossa /.*(Guru99).*/.* vastaa kaikki merkkijonon merkit. A '.' perlissรค regex-osuma viittaa mihin tahansa merkkiin, mukaan lukien vรคlilyรถnti.

Katsotaanpa, kuinka tarkalleen voimme rakentaa Regexin.

Harkitse esimerkkiรค useiden sanojen ja numeroiden merkkijonosta ja erikoissymboleista, kuten "Hei kaikki, tรคmรค on minun numeroni: +91-99298373639";

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

Sanavรคli sana vรคlilyรถnti sanavรคli sana vรคlilyรถnti sana vรคlilyรถnti sana vรคlilyรถnti erikoismerkki : vรคlilyรถnti erikoismerkki+numerot erikoismerkki โ€“numerot.

Perl-ottelu OperaTors

Tรคsmรคysoperaattoreita kรคytetรครคn vastaamaan merkkijonoa jossakin lauseessa tai muuttujassa.

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

lรคhtรถ:

totta

Tรคmรค pieni koodi tulostaa 'true', koska perl-mallin vastaavuus identifioi muuttujan merkkijonon. Periaatteessa Perl etsii //-tekstiรค koko merkkijonosta, vaikka se lรถytรคisikin yhdestรค paikasta, se palauttaa arvon "true". Kuvio voi olla missรค tahansa muuttujan kohdassa. Voimme yrittรครค korvata =~:llรค !~ nรคhdรคksemme eron nรคiden kahden operaattorin vรคlillรค.

Perlin vaihto OperaTor

Tรคtรค operaattoria voidaan kรคyttรครค minkรค tahansa merkin etsimiseen ja korvaamiseen joko tyhjรคllรค tai jollain muulla merkillรค.

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

lรคhtรถ:

sello kuinka voit

Huomautus: Voimme itse asiassa kรคyttรครค mitรค tahansa mallia vastaavaa merkkijonoa, kuten teimme aiemmin myรถs tรคssรค korvausoperaattorissa. Tรคssรค kรคytimme 'gi', g-globally, i-ignore kirjainkoko.

Perl-kรครคnnรถs OperaTor

Tรคmรค on samanlainen kuin Korvaus, mutta se ei kรคytรค perl-sรครคnnรถllisiรค lausekkeita, vaan voimme vรคlittรครค suoraan arvon tai sanan, jonka haluamme korvata.

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

lรคhtรถ:

Hei lehmรค sinรค olet

Perl-tiedoston I/O

Perl on suunniteltu kรคsittelemรครคn tiedostoja ja I/O-toimintoja tehokkaasti. Perlin tรคrkein etu on tiedostojen jรคsentรคminen ja tiedostojen kรคsittely. Perlissรค tiedostojen kรคsittelyssรค kรคytetรครคn monia sisรครคnrakennettuja toimintoja ja operaattoreita.

Periaatteessa Perlillรค suoritettavat tiedostotoiminnot tehdรครคn FILEHANDLE:lla. Meidรคn on mรครคritettรคvรค tรคmรค FILEHANDLE tiedoston avaamisen aikana joko lukemista tai kirjoittamista varten.

Tรคssรค Perl-komentosarjan opetusohjelmassa opit

Perl Avaa tiedosto

Voimme avata tiedoston Perlissรค saatavilla olevalla open()-funktiolla.

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

Nyt olemme avanneet tiedoston, nyt herรครค kysymys. Onko se lukemiseen vai kirjoittamiseen?

Perl Lue tiedosto ja Perl Kirjoita tiedosto

Perlissรค on tiettyjรค tiloja, joita on kรคytettรคvรค tiedoston lukemiseen, kirjoittamiseen tai liittรคmiseen.

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

Muutamia esimerkkejรค tiedoston lukemisesta:

Tiedoston lukeminen Perlissรค

Oletetaan, ettรค meillรค on perl-tiedosto, jonka nimi on tiedosto.txt ja siinรค on muutama rivi tekstiรค. Meidรคn on avattava tรคmรค tiedosto ja tulostettava se.

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;

Tรคmรค tulostaa tiedoston sisรคllรถn tulostusnรคytรถlle.

Nyt kirjoitamme ohjelman tietojen luomiseksi ja kirjoittamiseksi perl-tiedostoon.

Tiedoston kirjoittaminen Perlissรค

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

Tรคmรค kirjoittaa syรถtteen ajon aikana ja luo tiedoston test.txt, jossa on syรถte.

Yllรค oleva tapa yrittรครค aina luoda tiedoston nimeltรค testi.txt ja kirjoittaa syรถtteen tiedostoon; kirjoitamme saman tiedoston liittรคmiseksi.

File Append -toiminto Perlissรค

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

<

Lue

+<

Lukee ja kirjoittaa

>

Luo, kirjoittaa ja katkaisee

+>

Lue, kirjoita, luo ja katkaise

>>

Kirjoittaa, liittรครค ja luo

+>>

Lue, kirjoita, liitรค ja luo

Nyt meidรคn tรคytyy nรคhdรค, kuinka lukea, kirjoittaa ja liittรครค tiedostoja perusesimerkkien avulla.

Nรคemme vielรค muutamia esimerkkejรค ja muita toimintoja, jotka auttavat ymmรคrtรคmรครคn enemmรคn tiedostoja.

Perl Kerro

Tรคmรค menetelmรค palauttaa FILEHANDLER:n nykyisen sijainnin tavuina, jos muuten mรครคritetรครคn, se pitรครค viimeisenรค rivinรค sijaintina.

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

Perl Seek

Hakutoiminto on samanlainen kuin fseek-jรคrjestelmรคkutsu. Tรคtรค menetelmรครค kรคytetรครคn tiedoston osoittimen sijoittamiseen tiettyyn paikkaan mรครคrittรคmรคllรค tavut, joita seuraa joko tiedostoosoittimen alku tai tiedostoosoittimen loppu.

seek FH, bytes, WHENCE;

WHENCE on aloitustiedoston osoittimen sijainti. Nolla asettaa sen tiedoston alusta.

Esimerkki: Anna input.txt sisรคltรครค tietoja, kuten "Hei, tรคmรค on minun maailmani".

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

lรคhtรถ:

tรคmรค on minun maailmani

Perl Unlink

Linkin poistamista kรคytetรครคn tiedoston poistamiseen.

unlink("filename or complete file path");

Hakemistojen kรคsittely:

Voimme myรถs kรคsitellรค hakemistoja, joiden kautta voimme kรคsitellรค useita tiedostoja.

katsotaan kuinka avataan hakemisto. Voimme kรคyttรครค opendir- ja readdir-menetelmiรค.

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

Tรคmรค tulostaa kaikki kyseisessรค hakemistossa olevat tiedostot.

Perl-tiedostotestit ja niiden merkitys

-r

Tarkistaa, voiko nykyinen kรคyttรคjรค/ryhmรค lukea tiedostoa/hakemistoa

-w

Tarkistaa, voiko nykyinen kรคyttรคjรค/ryhmรค kirjoittaa tiedostoon/hakemistoon

-x

Tarkistaa, onko nykyinen kรคyttรคjรค/ryhmรค suoritettava tiedosto/hakemisto

-o

Tarkistaa, omistaako tiedosto/hakemisto nykyinen kรคyttรคjรค

-R

Tarkistaa, voiko tรคmรค oikea kรคyttรคjรค/ryhmรค lukea tiedostoa/hakemistoa

-W

Tarkistaa, voiko tรคmรค oikea kรคyttรคjรค/ryhmรค kirjoittaa tiedostoon/hakemistoon

-X

Tarkistaaksesi, voiko tรคmรค oikea kรคyttรคjรค/ryhmรค suorittaa tiedostoa/hakemistoa

-O

Tarkistaaksesi, omistaako tiedosto/hakemisto tรคmรค oikea kรคyttรคjรค

-e

Tarkistaa, onko tiedoston/hakemiston nimi olemassa

-z

Tarkistaaksesi, onko tiedosto olemassa ja onko sen koko nolla (aina epรคtosi hakemistoille)

-f

Tarkistaaksesi, onko Entry tavallinen tiedosto

-d

Tarkistaaksesi, onko Entry hakemisto

-l

Tarkistaaksesi, onko Entry symbolinen linkki

-S

Tarkistaaksesi, onko Entry pistorasia

-p

Tarkistaa, onko Entry nimetty putki ("FIFO")

-b

Tarkistaaksesi, onko Entry lohkon erikoistiedosto (kuten asennettava levy)

-c

Tarkistaaksesi, onko Entry merkkien erikoistiedosto (kuten I/O-laite)

-u

Tarkistaaksesi, onko tiedosto tai hakemisto asetettu

-g

Tarkistaaksesi, onko tiedosto tai hakemisto asetettugid

-k

Tarkistaa, onko tiedostossa tai hakemistossa tarrabitti asetettu

-t

Annettu tiedostokahva on TTY (isatty()-jรคrjestelmรคfunktion mukaan tiedostonimiรค ei voi testata tรคllรค testillรค)

-T

Tarkistaaksesi, nรคyttรครคkรถ tiedosto "tekstitiedostolta".

-B

Tarkistaaksesi, nรคyttรครคkรถ tiedosto "binรครคritiedostolta".

-M

Tarkistaaksesi tiedoston muokkausiรคn (pรคivinรค mitattuna).

-A

Voit tarkistaa tiedoston kรคyttรถiรคn (pรคivinรค mitattuna).

-C

Tarkistaaksesi tiedoston Inode-muokkauksen iรคn (pรคivinรค mitattuna).

Perl-alirutiini

Mikรค on aliohjelma?

Aliohjelmat ovat samanlaisia โ€‹โ€‹kuin muiden ohjelmointikielten toiminnot. Olemme jo kรคyttรคneet joitain sisรครคnrakennettuja toimintoja, kuten print, chomp, chop jne. Voimme kirjoittaa omia aliohjelmiamme Perlissรค. Nรคmรค aliohjelmat voidaan kirjoittaa minne tahansa ohjelmaan; aliohjelmat kannattaa sijoittaa joko koodin alkuun tai loppuun.

Aliohjelma PERL:ssรค

Aliohjelmat Esimerkki

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

Nyt kun tiedรคmme kuinka kirjoittaa aliohjelma, miten pรครคsemme siihen kรคsiksi?

Meidรคn on kรคytettรคvรค tai kutsuttava aliohjelmaa kรคyttรคmรคllรค aliohjelman nimeรค, jonka etuliitteenรค on &-symboli.

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

Perl-parametrien ja Perl-argumenttien vรคlittรคminen

Aliohjelmat tai perl-funktio on kirjoitettu sijoittamaan uudelleen kรคytettรคvรค koodi siihen. Suurin osa uudelleen kรคytettรคvรคstรค koodista vaatii parametrien vรคlittรคmisen aliohjelmalle. Tรครคllรค opimme kuinka voimme vรคlittรครค argumentteja aliohjelmalle.

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.

lรคhtรถ:

3 on vรคlitetty arvo

@_ on erityinen taulukkomuuttuja, joka tallentaa aliohjelmille vรคlitetyt argumentit.

Perl Shift

Voimme myรถs kรคyttรครค 'shift'-avainsanaa, joka siirtรครค parametrin kerrallaan muuttujaan tai $_[0],$_[1]โ€ฆ joka on @_-taulukon yksittรคinen elementti

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

lรคhtรถ:

tervehdys on ohitettu

Alirutiineja kรคytetรครคn tyypillisesti olio-ohjelmoinnissa ja myรถs paikoissa, joissa voi olla enemmรคn uudelleenkรคytettรคvรครค koodia sijoitettavana.

Aliohjelmien pรครคtoiminto on tehdรค jokin tehtรคvรค ja palauttaa uudelleenkรคytettรคvรคn koodin tulos.

PERL-opetusohjelma aloittelijoille - tรคydellinen opas

Voimme palauttaa arvon aliohjelmasta kรคyttรคmรคllรค return-avainsanaa.

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

lรคhtรถ:

11

$tulos sisรคltรครค lisรคttyjen $a:n ja $b:n arvon.

Voimme myรถs siirtรครค tiivisteet ja taulukon suoraan aliohjelmaan.

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

lรคhtรถ:

1a2b

Voimme myรถs palauttaa hashin tai taulukon.

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;

lรคhtรถ:

Alirutiinin sisรคllรค2b1aAlirutiinin kutsun2b1a jรคlkeen

Perl-muoto

Perlillรค on mekanismi, jonka avulla voimme luoda raportteja. Tรคmรคn ominaisuuden avulla voimme tehdรค raportteja juuri haluamallamme tavalla tulostettaessa Tulostusnรคytรถssรค tai tiedostossa. Yksinkertainen muoto voidaan kirjoittaa Perlissรค saatavilla olevilla printf- tai sprintf-funktioilla.

printf "%05d\n", 30;

Tรคmรค sisรคltรครค alkunollat โ€‹โ€‹luvun 30 eteen, jolloin numeroiden kokonaismรครคrรค lasketaan viiteen. Samaa voidaan kรคyttรครค sprintf:ssรค.

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

Printf:n ja sprintf:n avulla voimme saada useimmat Perl-muodot. Raporttien tapauksessa se on vaikea toteuttaa.

Perl-muoto

Esimerkki raportista:

================================================== =========================
Nimi Osoite Ikรค Puhelin
================================================== =========================
Krishna Chennai 24 929309242
Shruthi Chennai 24 929309232

Yllรค oleva on esimerkkiraportit, jotka meidรคn on tulostettava samalla tavalla Perlissรค. Tรคmรค voidaan saavuttaa kรคyttรคmรคllรค perl printf ja perl sprintf. Se voidaan toteuttaa tehokkaasti kรคyttรคmรคllรค muotoa.

Muoto voidaan ilmoittaa alla olevalla tavalla.

format FORMATNAME=FORMATLIST.

Tรคssรค kรคytรคmme tiettyรค kirjoitusmenetelmรครค tietojen tulostamiseksi tulostusnรคytรถlle tai tiedostoon.

Symboli Tuotetiedot

@

Kรคytetรครคn edustamaan kentรคn haltijan alkua

>

Tekstin tasaus oikealle

<

Tekstin tasaus vasemmalle

|

Keskitasaus

#

Numero, jos useita # on annettu. Oletetaan kommentiksi, jos yksittรคinen # on annettu

.

Desimaalipiste

^

Kentรคnpitimen alkua voidaan kรคyttรครค myรถs moniriviselle ja myรถs rivityksellรค

~

Rivin tulee olla tyhjรค, jos muuttuja on tyhjรค

@*

Useita rivejรค.

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

Suorita koodi nรคhdรคksesi tulosteen.

Kรคytรคmme @-symbolia mรครคrittรคmรครคn kentรคn haltijan tai merkkijonon alkua, jokainen merkki "<".

Kรคytรคmme STDOUT-tulostusta vakiotulosteen tulostamiseen. Voimme muuttaa tรคmรคn tiedostokรคsittelijรคksi, jota kรคytรคmme tietojen kirjoittamiseen tiedostoon.

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

Voimme korvata '<':n '>' tai '|' muuttaaksesi tekstin kohdistusta. STDOUT_TOP:a kรคytetรครคn muotoilemaan muodon otsikkoa.Voimme kรคyttรครค samaa myรถs tiedostonkรคsittelyohjelmassa kรคyttรคmรคllรค FH_TOP:ia (FH on tiedostonkรคsittely). Tรคmรค tulostaa muodon kรคsiteltรคvรครคn tiedostoon pรครคllรค.

Perl-koodausstandardit

Jokaisella ohjelmoijalla on oma kรคsityksensรค koodin kirjoittamisesta tiettyjรค standardeja kรคyttรคen; Nรคiden standardien tulee olla tarpeeksi tuttuja, jotta muut ohjelmoijat voivat ymmรคrtรครค ja tukea koodia oikein.

Koodausstandardit Perlissรค

Koodausstandardit Perlissรค

Koodin kirjoittaminen on yksinkertaista ja helppoa. Ongelma syntyy, kun sitรค on yllรคpidettรคvรค myรถhemmissรค vaiheissa. Asianmukaisia โ€‹โ€‹ohjeita ja koodausstandardeja on noudatettava koodia kirjoitettaessa. Perl mรครคrittelee myรถs tietyt standardit, joista on hyรถtyรค ohjelmoijille koodin kirjoittamisessa. On suositeltavaa ladata 'strict' ja 'warnings module' koodia kirjoitettaessa. Jokaisella nรคistรค moduuleista on oma merkityksensรค. Strict saa meidรคt ilmoittamaan muuttujan ennen kรคyttรถรค ja myรถs kertomaan, onko koodissasi paljaita sanoja. Varoitukset moduulia voidaan vaihtoehtoisesti kรคyttรครค vรคlittรคmรคllรค '-w' vaihtoehto Perl-tulkkiin shebangissa. Varoitukset tulostuvat tulostusnรคytรถlle.

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

Alla on muutamia luetteloita standardeista.

  • Kรคytรค 'tiukkaa' ja 'varoitukset' -moduulia.
  • Poista muuttuja, joka ei ole kรคytรถssรค.
  • Muuttujien nimien tulee olla muiden kรคyttรคjien ymmรคrrettรคviรค. Esim: $nimi, @fileData jne.
  • Skriptiรค koodattaessa tarvitaan dokumentaatio.
  • ร„lรค koodaa arvoja, vaan yritรค hakea ne dynaamisesti tai pyydรค kรคyttรคjรครค syรถttรคmรครคn ajon aikana. (Tiedostopolku, Tiedostonimet).
  • Maksimoi koodin uudelleenkรคyttรถ. Yritรค laittaa uudelleen kรคytettรคvรค koodi aliohjelmiin.
  • Aliohjelmille tulee antaa merkitykselliset nimet.
  • Aliohjelmat on kirjoitettava asianmukaisilla kommenteilla ja dokumentaatiolla.
  • Alusta aina muuttujat.
  • Tarkista aina jรคrjestelmรคpuheluiden paluukoodit. Tiedoston avaaminen voi tapahtua tai ei, palautuskoodin saaminen tรคhรคn nรคyttรครค virhetilan, jos tiedostoa ei ole olemassa.

    Esim: avoin (FH,

  • Aliohjelman tulee aina palauttaa arvo.
  • Avaa kihara samassa linjassa.
  • Yksirivinen BLOCK voidaan sijoittaa yhdelle riville kiharalla.
  • Kรคytรค tarroja silmukan aikana, silmukasta olisi helppo poistua aina, kun se on tarpeen.
  • Kรคytรค alaviivaa, kun pitkiรค sanoja kirjoitetaan muuttujan nimellรค tai aliohjelmalla.
  • Yritรค kรคyttรครค yksinkertaista regexiรค koodattaessa.

Tรคydellinen esimerkki koodausstandardeista:

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

Perl-virheiden kรคsittely

Mikรค on poikkeus?

Poikkeus on tapahtuma, joka tapahtuu ohjelman suorittamisen aikana ja joka keskeyttรครค tai lopettaa ohjelman.

Virheiden kรคsittely

Virheenkรคsittely on ongelma, josta jokaisen ohjelmoijan on huolehdittava ohjelmoinnin aikana. Perl tarjoaa myรถs virheenkรคsittelytekniikoita, joiden avulla voimme saada virheen ansaan ja kรคsitellรค niitรค vastaavasti.

Virheiden kรคsittely Perlissรค

Virheiden kรคsittely Perlissรค

On monia tapoja tarkistaa ohjelman virheitรค. Meidรคn on tutkittava kรคyttรคmรคmme koodin funktion palautuskoodit. Jos pystymme kรคsittelemรครคn nรคitรค palautuskoodeja oikein, suurin osa virheiden kรคsittelystรค voidaan saavuttaa.

Mitรค palautetaan jรคrjestelmรคkutsujen tapauksessa?

Jรคrjestelmรคkutsujen tapauksessa palautustila tallennetaan kahteen erikoismuuttujaan $? Ja $!

$! โ€“ Tรคmรค havaitsee virheilmoitukseen liittyvรคn virhenumeron tai virhenumeron.

$? โ€“ Tรคmรค sรคilyttรครค palautustilan system()-funktion.

Perl- tai Logical-operaattorilla

Voimme kรคyttรครค loogista tai operaattoria virheenkรคsittelyyn jรคrjestelmรคkutsuja kรคytettรคessรค.

ex:

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

Tรคmรค avaa tiedoston lukutilassa, jos tiedosto on olemassa.

Entรค jos tiedosto puuttuu?

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-toiminto voi kรคsitellรค vakavia virheitรค, kรครคnnรถsaikavirheitรค, ajonaikaisia โ€‹โ€‹virheitรค ja niitรค virheitรค, jotka pรครคttรคvรคt koodisi jossain vaiheessa.

Perl Eval -funktiolla voi olla koodilohko tai lauseke. Evals pitรครค kaikkea siihen sijoitettua merkkijonona.

Harkitse tilannetta, jossa kutsutaan aliohjelmaa, jota ei ole mรครคritelty skriptissรค. Tรคssรค tilanteessa komentosarja pรครคttyy sanomalla "mรครคrittelemรคtรถn aliohjelma &XYZ, tรคmรค virhe voidaan kรคsitellรค eval-funktiossa.

Evals-lohkolla on monia kรคyttรถtarkoituksia; yksi tรคllainen kรคyttรถ on, kun haluamme ladata kรคyttรถjรคrjestelmรคkohtaisen moduulin ajon aikana.

Esimerkki: Nollalla jakaminen aiheuttaa vakavan virheen; Tรคmรคn kรคsittelemiseksi voimme sijoittaa koodin evals-lohkoon.

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

lรคhtรถ:

syntaksivirhe C:\Users\XYZ\Text.pl rivillรค 8, lรคhellรค ")

{โ€œ

Tiedoston C:\Users\XYZ\Text.pl suoritus keskeytettiin kรครคnnรถsvirheiden vuoksi.

Esimerkki: eval kรคyttรคen perl die -lausetta.

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

lรคhtรถ:

Kiinni: kuolee osatestissรค

Kรคyttรคmรคllรค Perl Try

Perl ei tue try, catch ja lopuksi koodilohkoja kuten muut ohjelmointikielet. Voimme silti kรคyttรครค niitรค lataamalla ulkoisen Perl-moduulin.

kรคytรค Kokeile::Tiny;

Tรคmรคn avulla voimme sijoittaa koodisi try-lohkoon ja havaita virheen varoituslohkossa.

Eval:n Try::Tiny kรคyttรครค $_:n sijasta $_.

# kรคsittele virheitรค catch-kรคsittelijรคllรค

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

Lopuksi kรคytรถssรค.

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

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

lรคhtรถ:

foo osoitteessa C:\Users\XYZ\Text.pl rivillรค 4.

Voimme kรคyttรครค try, catch ja lopulta tรคllรค tavalla.

kokeile { # lausetta }

catch {# lausunto }

lopuksi { # lause };

Or

try 
{ 
# statement 
} 
finally 
{ 
# statement 
};

lรคhtรถ:

Or

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

lรคhtรถ:

Perl Socket -ohjelmointi

Mikรค on pistorasia?

PERL-opetusohjelma aloittelijoille - tรคydellinen opas

Socket on vรคline, jonka kautta kaksi tietokonetta voivat olla vuorovaikutuksessa verkossa kรคyttรคmรคllรค verkko-osoitetta ja portteja.

Oletetaan, ettรค A (palvelin) ja B (asiakas) ovat kaksi jรคrjestelmรครค, joiden on oltava vuorovaikutuksessa toistensa kanssa Socketsilla joidenkin ohjelmien suorittamiseen.

Tรคmรคn toteuttamiseksi meidรคn on luotava pistokkeet sekรค A:lle (palvelin) ettรค B:lle (asiakas), A on vastaanottavassa tilassa ja B on lรคhettรคvรคssรค tilassa.

A (palvelin):

Tรคssรค palvelin haluaa vastaanottaa yhteyden B:ltรค (asiakas) ja suorittaa joitakin tehtรคviรค ja lรคhettรครค tuloksen takaisin B:lle (asiakas). Kun suoritamme koodin, A:n kรคyttรถjรคrjestelmรค yrittรครค luoda socketin ja sitoa yhden portin siihen pistokkeeseen. Sitten se kuuntelee lรคhettรคjรครค, joka on B.

B (asiakas).

Tรคssรค asiakas haluaa lรคhettรครค jonkin ohjelman jรคrjestelmรคstรครคn A:lle (palvelimelle) kรคsittelyรค varten. Kun suoritamme koodin, B:n kรคyttรถjรคrjestelmรค yrittรครค luoda pistorasian kommunikointia varten A:n (palvelimen) kanssa, B:n on mรครคritettรคvรค A:n IP-osoite ja porttinumero, johon B haluaa muodostaa yhteyden.

Jos tรคmรค menee hyvin, molemmat jรคrjestelmรคt ovat vuorovaikutuksessa tietojen vaihtamiseksi yhden portin kautta. Perl tukee myรถs socket-ohjelmointia.

Perlissรค on natiivi API, jonka kautta socketit voidaan toteuttaa. Sen helpottamiseksi on olemassa monia CPAN-moduuleja, joilla kirjoitamme socket-ohjelmia.

Palvelimen toiminta:

  • Luo Socket
  • Sidosliitin osoitteella ja portilla
  • Kuuntele kyseisen portin osoitteen liitรคntรครค
  • Hyvรคksy asiakasyhteydet, jotka yrittรคvรคt muodostaa yhteyden kรคyttรคmรคllรค palvelimen porttia ja IP-osoitetta
  • Suorita toimenpiteet

Asiakas OperaTIONS:

  • Luo Socket
  • Yhdistรค palvelimeen kรคyttรคmรคllรค sen porttiosoitetta
  • Suorita toimenpiteet

Asiakaspalvelin OperaPerlissรค

socket.io

Tรคmรค on yksi moduuli socket-ohjelmointiin, joka perustuu olio-ohjelmointiin. Tรคmรค moduuli ei tue verkoissa kรคytettyรค INET-verkkotyyppiรค.

IO::Socket::INET:

Tรคmรค moduuli tukee INET-toimialuetta ja on rakennettu IO::Socketsiin. Kaikki IO::Socketsissa kรคytettรคvissรค olevat menetelmรคt periytyvรคt INET-moduulissa.

TCP-protokollaa kรคyttรคvรค asiakas ja palvelin:

TCP on yhteyssuuntautunut protokolla; kรคytรคmme tรคtรค protokollaa socket-ohjelmointiin.

Ennen kuin jatkat, katsotaan kuinka voimme luoda objektin IO::Socket::INET-moduulille ja luoda socketin.

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

Uusi menetelmรค IO::Socket::INET-moduulissa hyvรคksyy hajautusarvon syรถteparametriksi aliohjelmaan. Tรคmรค hash on ennalta mรครคritetty, ja meidรคn on vain annettava arvot avaimille, joita haluamme kรคyttรครค. Tรคssรค on luettelo tรคmรคn hashin kรคyttรคmistรค avaimista.

PeerAddr

Etรคisรคntรคosoite

PeerHost

Synonyymi sanalle PeerAddr

PeerPort

Etรคportti tai -palvelu

LocalAddr

Paikallisen isรคnnรคn sidososoite

localhost

Synonyymi sanalle LocalAddr

LocalPort

Paikallisen isรคnnรคn sidosportti

Proto

Protokollan nimi (tai numero)

Tyyppi

socket tyyppi

Kuuntele

Jonon koko kuuntelua varten

ReuseAddr

Aseta SO_REUSEADDR ennen sitomista

Kรคyttรครค uudelleen

Aseta SO_REUSEADDR ennen sitomista

ReusePort

Aseta SO_REUSEPORT ennen sitomista

Lรคhettรครค

Aseta SO_BROADCAST ennen sitomista

Timeout

Aikakatkaisuarvo eri toiminnoille

MultiHomed

Kokeile kaikkia monikotiisten isรคntien osoitteita

Esto

Selvitรค, onko yhteys estotilassa

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

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

Huomautus:

Socket-ohjelmoinnissa meidรคn on suoritettava Server.pl ensin ja sitten client.pl yksitellen eri komentokehotteissa, jos kรคytรคmme paikallista isรคntรคkonetta.

Mitรค ovat Perl-moduulit ja -paketit

Moduulit ja paketit liittyvรคt lรคheisesti toisiinsa ja ovat riippumattomia. Paketti: Perl-paketti tunnetaan myรถs nimellรค nimiavaruus, ja siinรค on kaikki ainutlaatuiset muuttujat, kuten tiivisteet, taulukot, skalaarit ja aliohjelmat. Moduuli: Moduuli on kokoelma uudelleenkรคytettรคvรครค koodia, johon kirjoitamme alirutiineja. Nรคmรค moduulit voidaan ladata Perl-ohjelmiin, jotta voidaan hyรถdyntรครค niissรค kirjoitettuja aliohjelmia.

Mitรค Perl-moduulit ovat?

Vakiomoduulit asennetaan Perlin asennuksen aikana mihin tahansa jรคrjestelmรครคn. CPAN: Kattava Perl Archive Network โ€“ Perl-moduulien maailmanlaajuinen arkisto. Omat mukautetut Perl-moduulimme, jotka voimme kirjoittaa itse. Pohjimmiltaan moduuli, joka ladataan mihin tahansa komentosarjaan, vie kaikki globaalit muuttujat ja aliohjelmat. Nรคmรค aliohjelmat voivat kutsua suoraan ikรครคn kuin ne olisi ilmoitettu itse skriptissรค. Perl-moduulit voidaan kirjoittaa .pm-tunnisteella tiedostonimellรค Esim: Foo.pm. Moduuli voidaan kirjoittaa kรคyttรคmรคllรค "paketti Foo" ohjelman alussa.

Perl-perusmoduuli:

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

Ei lรคhtรถรค

Kรคyttรครคksemme tรคtรค Perl-moduulia, meidรคn on sijoitettava se tรคllรค hetkellรค toimivaan hakemistoon.

Voimme ladata Perl-moduulin vaatimalla tai kรคyttรคmรคllรค missรค tahansa koodissa. Suurin ero vaatimuksen ja kรคytรถn vรคlillรค on, ettรค vaaditaan ladattu moduuli ajon aikana ja kรคytรค kuormia kรครคnnรถsajan aikana.

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

Tรคssรค, yllรค olevassa esimerkissรค, kรคytรคmme aliohjelmia kรคyttรคmรคllรค tรคysin pรคtevรครค moduulinimeรค.

Voimme kรคyttรครค pakettia myรถs kรคyttรคmรคllรค "kรคytรค aritmetiikkaa".

Viejรค:

Tรคssรค moduulissa on oletusarvoinen tuontimenetelmien toiminto.

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

@EXPORT-taulukkoa voidaan kรคyttรครค siirtรคmรครคn luettelo muuttujista ja aliohjelmista, jotka oletuksena viedรครคn moduulin kutsujalle.

@EXPORT_OK-taulukon avulla voidaan vรคlittรครค luettelo muuttujista ja aliohjelmista, jotka viedรครคn pyynnรถstรค ja jotka kรคyttรคjรคn on mรครคritettรคvรค moduulia ladattaessa.

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

Oletuksena lisรคalirutiini viedรครคn. Vรคhennysmenetelmรครค ei viedรค, jos sitรค ei ole mรครคritetty moduulia ladattaessa.

Olio-ohjelmointi Perlissรค

Tรคssรค osiossa opimme luomaan Perl-oliomoduuleja. Katsotaanpa ensin, mikรค on esine? Objekti on ilmentymรค, jonka avulla voimme kรคyttรครค, muokata ja paikantaa tietoja missรค tahansa Perl-moduulissa. Tรคmรค ei ole muuta kuin olemassa olevan Perl-paketin, muuttujien ja aliohjelmien saattamista toimimaan luokan, objektien ja menetelmien tavoin suhteessa muihin ohjelmointikieliin.

Luo luokka

Osaamme jo luoda moduuleja edellisestรค aiheesta. Luokan tarkoituksena on tallentaa menetelmiรค ja muuttujia. Perl-moduulissa on alirutiineja, jotka ovat menetelmiรค. Meidรคn on kรคytettรคvรค nรคitรค muuttujia ja aliohjelmien objekteja.

Perl rakentaja

Konstruktori Perlissรค on menetelmรค, joka suorittaa ja palauttaa meille viitteen moduulin nimellรค, joka on merkitty viitteeseen. Tรคtรค kutsutaan luokan siunaukseksi. Kรคytรคmme perl-luokan siunaamiseen tiettyรค muuttujaa, joka on 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;

Uusi menetelmรค, jota kรคytetรครคn luokan rakentajana, Tรคmรค rakentaja luo meille objektin ja palaa komentosarjaan, joka kutsuu tรคtรค rakentajaa.

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

Tรคssรค meidรคn on ymmรคrrettรคvรค, kuinka objekti luotiin. Aina kun yritรคmme luoda objektin luokalle, meidรคn on kรคytettรคvรค luokan koko nimeรค. Oletetaan, ettรค jos perl-luokka sijaitsee jossain tiedostossa lib\Math\Arithmetic.pm. Ja jos haluamme kรคyttรครค tรคtรค perl-luokkaa lib-hakemistosta, meidรคn on annettava koko polku luokkaan, kun kutsumme komentosarjaa.

kรคytรค lib::Math::Aritmetic;

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

Nรคin objektin luominen Perlissรค tapahtuu.

@INC:

Kuinka Perl-skripti tietรครค, missรค kirjastomoduuli on olemassa? Perl tietรครค vain komentosarjan nykyisen hakemiston ja Perlin sisรครคnrakennetun kirjastopolun. Aina kun kรคytรคmme Perl-moduulia, joka ei sijaitse nykyisessรค hakemistossa tai Perl-kirjastopolussa, komentosarja epรคonnistuu aina. Tietoja @INC:stรค tรคmรค on taulukko, joka sisรคltรครค kaikki hakemistopolut, joista sen on etsittรคvรค Perl-moduuleja. Yritรค suorittaa tรคmรค komento ja katso, mikรค on tulos.

perl โ€“e "print @INC"

Tรคmรค antaa jonkin verran tulosta, ja se on polku, jossa lib-moduulit ovat kรคytettรคvissรค. Aina kun kรคytรคmme uutta kirjastomoduulia, meidรคn on kerrottava Perlille, tulkille, ettรค hรคn tutkii sen sijainnin, jossa Perl-moduuli on saatavilla.

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

Tee tรคstรค ensimmรคinen koodirivi. Tรคmรค kรคskee tulkkiasi tutkimaan polkua. tai kรคyttรครค

lib Arithmetic; # List here is your Perl Module location

Perl Destructor

Objektin tuhoajaa kutsutaan oletusarvoisesti skriptin lopussa ja ennen kuin se poistuu. Tรคtรค kรคytetรครคn tuhoamaan esineesi muistista.


PERL V/s Shell Scripting

Johdatus PERL-ohjelmointiin

  • Ohjelmointi Perlissรค ei aiheuta siirrettรคvyysongelmia, mikรค on yleistรค kรคytettรคessรค eri shelliรค komentosarjoissa.
  • Virheiden kรคsittely on erittรคin helppoa Perlissรค
  • Voit kirjoittaa pitkiรค ja monimutkaisia โ€‹โ€‹ohjelmia Perlille helposti sen laajuuden vuoksi. Tรคmรค on toisin kuin Shell, joka ei tue nimiavaruuksia, moduuleja, objekteja, perintรถรค jne.
  • Shellillรค on saatavilla vรคhemmรคn uudelleenkรคytettรคviรค kirjastoja. Ei mitรครคn verrattuna Perlin CPAN:iin
  • Shell on vรคhemmรคn turvallinen. Se kutsuu ulkoisia toimintoja (komennot kuten mv, cp jne. riippuvat kรคytetystรค kuoresta). Pรคinvastoin Perl tekee hyรถdyllistรค tyรถtรค kรคyttรคessรครคn sisรคisiรค toimintoja.

Kuinka PERLiรค kรคytetรครคn automaatiotestauksessa

Perliรค kรคytetรครคn laajalti automaatiossa. Se ei ehkรค ole maailman paras ohjelmointikieli, mutta se sopii parhaiten tietyntyyppisiin tehtรคviin. Keskustellaan siitรค, missรค ja miksi Perliรค kรคytetรครคn Automaatiotestaus.

Varastoinnin testaus

Tallennustestaus Perlillรค

Mikรค on varastointi? Tiedostoihin tallennetut tiedot.

Oletetaan, ettรค meillรค on tallennustilaa Testitapaus jossa meidรคn on kirjoitettava tiedot yhteen osioon, luettava se ja tarkistettava, ettรค tiedot on kirjoitettu oikein.

Tรคmรค voidaan tehdรค manuaalisesti, mutta voiko manuaalinen testaaja suorittaa saman 10000 XNUMX kertaa? Siitรค tulee painajainen! Tarvitsemme automaatiota

Paras tyรถkalu kaiken tallennukseen liittyvรคn automatisointiin on Perl sen tiedostojenkรคsittelytekniikoiden vuoksi, REGEX ja tehokas tiedostojen jรคsennys, joka kuluttaa vรคhiten suoritusaikaa muihin ohjelmointikieliin verrattuna.

Miksi meidรคn tรคytyy testata tallennustilaa? Ajattele suuria palvelinkeskuksia, joissa data virtaa jatkuvasti jรคrjestelmรคstรค toiseen ja jossa tallennetaan 1000 tietuetta sekunnissa. Tรคllaisen sรคilytysmekanismin kestรคvyyden testaaminen on vรคlttรคmรคtรถntรค.

Monet yritykset, kuten HP, Dell, IBM ja monet palvelinvalmistajat kรคyttรคvรคt Perliรค kรคyttรถliittymรคnรค tallennus- ja verkkoalueiden toimivuuden testaamiseen. NetApp on yksi tรคllainen yritys, joka toimii tรคysin Storagessa ja kรคyttรครค Perliรค ohjelmointikielenรค testitapausten automatisoimiseen.

Jos olet kiinnostunut Perl Automationista, olisi suositeltavaa oppia tallennus- ja verkkotoiminnoista Concepts.

Palvelimen ja verkon testaus:

Palvelimen ja verkon testaus Perlillรค

Palvelimen ja verkon testaus Perlillรค

PERLiรค kรคytetรครคn laajalti palvelimen kรคytettรคvyyden ja suorituskyvyn seurantaan.

Harkitse datakeskusta, jossa on 100 isรคntรค (palvelinta). Sinun on muodostettava yhteys jokaiseen isรคntรครคn, suoritettava joitain komentoja etรคnรค. Haluat myรถs kรคynnistรครค jรคrjestelmรคn uudelleen ja tarkistaa, milloin se palaa verkkoon.

Tรคmรคn tehtรคvรคn manuaalinen suorittaminen kaikille 100 isรคnnรคlle on painajainen. Mutta voimme helposti automatisoida tรคmรคn kรคyttรคmรคllรค PERLiรค

Suunnittele vaiheet tรคmรคn yllรค olevan automatisoinnin saavuttamiseksi PERL:n avulla

  1. Syรถtรค tiedostosta isรคntรคtiedot, kuten (IP, kรคyttรคjรคtunnus ja salasana).
  2. Kรคytรค Net::SSH2:ta muodostaaksesi yhteyden jokaiseen jรคrjestelmรครคn ja perustaaksesi kanavan komentojen suorittamista varten.
  3. Suorita vaaditut komentosarjat, esim.: ls, dir, ifconfig, ps jne.
  4. Kรคynnistรค jรคrjestelmรค uudelleen.
  5. Odota 10 minuuttia, kunnes jรคrjestelmรค tulee nรคkyviin.
  6. Pingta jรคrjestelmรครค Net::Ping-moduulilla ja tulosta tila.

Koodaamme yllรค olevan skenaarion.

Otetaan tiedosto nimeltรค Input.txt, joka tallentaa tรคydelliset tiedot kaikista isรคnnistรค, joihin meidรคn on muodostettava yhteys ja suoritettava komento.

Input.txt

192.168.1.2 pรครคkรคyttรคjรคn salasana

192.168.1.3 pรครคkรคyttรคjรคn salasana

192.168.1.4 juurijuuri123

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

Verkkotestaus

Perl ei rajoitu vain tallennus- ja verkkotestaukseen. Voimme myรถs suorittaa web-pohjaisia โ€‹โ€‹testejรค PERL:n avulla. WWW-Mekanisoi on yksi moduuli, jota kรคytetรครคn verkkotestaus. Pohjimmiltaan se ei kรคynnistรค selainta web-sovellusten toimivuuden testaamiseksi, vaan se kรคyttรครค html-sivujen lรคhdekoodia.

Voimme myรถs suorittaa selainpohjaisia โ€‹โ€‹testejรค kรคyttรคmรคllรค Selenium IDE, RC, Web-ohjain. Perl on tuettu Selenium.

\n"; #tรคmรค sรคilyttรครค jรคljellรค olevan merkkijonon kuvion sovituksen jรคlkeen.
Tulosta "

Tiivistรค tรคmรค viesti seuraavasti: