Perl Tutorial: Muuttuja, Array, Hashes ohjelmointiesimerkillä

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 "