Bruk av foreach -sløyfe i perl

Bruk av foreach -sløyfe i perl
“Løkken brukes til å iterere noen uttalelser flere ganger. De for hver Loop er en av de nyttige løkkene til Perl. Denne sløyfen brukes hovedsakelig til å iterere rekke verdier som inneholder listen over data. Det kan også brukes til andre formål, for eksempel å lese filinnhold, kontrollere iterasjonen ved hjelp av forskjellige nøkkelord osv. Forskjellige bruksområder av for hver Loop har blitt vist i denne opplæringen.”

Syntaks

Forskjellige syntakser av for hver Loop er gitt nedenfor.

EN. foreach var (array)
uttalelse (er);

Ovennevnte foreach -sløyfe brukes til å iterere matriseverdiene.

B. foreach var (file_handler)
uttalelse (er);

Ovennevnte foreach -loop brukes til å lese innholdet i en fil.

C. foreach var ()
uttalelse (er);

Ovennevnte foreach -sløyfe brukes til å lese brukerinngangene.

Ulike bruksområder for foreach -sløyfen er vist i neste del av denne opplæringen.

Eksempel 1: Les en endimensjonal matrise

Opprett en Perl-fil med følgende kode som vil iterere verdiene til en endimensjonal matrise ved hjelp av en for hver sløyfe og skriv ut hver verdi av matrisen i en linje. En rekke 5 strengverdier er definert i koden. I hver iterasjon av sløyfen vil hver verdi av matrisen bli analysert og skrevet ut i utgangen med Newline.

# Erklære en rekke strengverdier
@Students = ("Mir Sabbir", "Meena Chowdhury", "Lisa Rahman", "Nirob Hossain", "Keya Khan");
# Itererer matriseverdiene ved å bruke foreach -sløyfen
Foreach $ verdi (@Students)

# Skriv ut arrayverdien
skriv ut "$ verdi \ n";

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor.

Eksempel-2: Les en todimensjonal matrise

Opprett en Perl-fil med følgende kode som vil iterere verdiene til en todimensjonal matrise ved hjelp av en for hver sløyfe og skriv ut hver verdi av matrisen i en linje. En todimensjonal rekke 4 rader og 3 kolonner er definert i koden. En ekstra ny linje er lagt til etter å ha iterert alle verdiene på en rad. Verdiene for hver rad er blitt analysert ved å bruke objektvariabelen definert i løkken.

# Erklære en todimensjonal matrise
@Students = (

id => '20227856',
Navn => 'Neha Ali',
merker => 89
,

id => '20224523',
Navn => 'Mizanur Rahman',
merker => 95
,

id => '20221278',
Navn => 'Ruhul Amin',
merker => 69
,

id => '20228956',
Navn => 'Mehrab Hossain',
merker => 70
,
);
# Itererer matriseverdiene
Foreach $ std (@students)

# Skriv ut arrayverdiene
Skriv ut "Student ID:", $ std-> 'id', "\ n";
Skriv ut "Studentnavn:", $ std-> 'navn', "\ n";
Skriv ut "Studentmerker:", $ std-> 'Marks', "\ n \ n";

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor.

Eksempel-3: Les verdiene

Opprett en Perl -fil med følgende kode som vil iterere for hver Loop basert på verdiene til en rekkevidde. I hver iterasjon vil det bli tatt en tallverdi fra brukeren og settes inn i en matrise. Verdiene til denne matrisen vil bli skrevet ut etter å ha fullført iterasjonen av loopen.

# Erklære en matrise
@lines;
# Itererer sløyfen 4 ganger
for lodd $ tall (1… 4)

# Skriv ut melding for brukeren
Skriv ut "Skriv inn et tall:";
# Ta innspill fra brukeren
$ linje =;
# Legg inn inngangsverdien i matrisen
Push @lines, $ linje;

# Skriv ut arrayverdiene
Skriv ut "\ Narray Values ​​er: \ n", @lines;

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor.

Eksempel-4: Les innholdet i en fil

Lag en tekst som heter myfile.tekst med følgende innhold før du tester koden til dette eksemplet.

myfile.tekst

Perl er et generelt programmeringsspråk.

Det er likt syntaks som C -språket.

Det er et åpen kildekode og tolket språk.

Opprett en Perl -fil med følgende kode som vil lese innholdet i myfile.txt -fil og skriv ut filinnholdet ved å bruke en for hver Løkke. De åpen() Funksjonen har blitt brukt i koden for å åpne filen for lesing. “<” symbol is used to open a file for reading in PERL. Next, the for hver Loop har blitt brukt til å lese og skrive ut filinnholdslinjen for linje.

# Angi filnavnet
$ filnavn = 'myfile.tekst';
# Åpne filen for lesing
Åpne $ file_handler, '<', $filename or die "Unable to open $filename file.";
# Les hver linje i filen ved hjelp av foreach -loop
foreach $ line ()
# Skriv ut linjen i filen
skriv ut $ linje;

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor hvis myfile.tekst Filen eksisterer ikke på det nåværende stedet.

Etter å ha opprettet myfile.tekst filen, følgende utgang vises etter å ha utført skriptet ovenfor.

Eksempel-5: Kontroller foreach-sløyfen ved hjelp av det "siste" nøkkelordet

Opprett en Perl -fil med følgende kode der for hver Loop blir avsluttet ved å bruke siste nøkkelord basert på “hvis" betingelse. De for hver Loop vil iterere 10 ganger basert på rekkevidden. Løkken vil bli avsluttet etter itering av sløyfen 4 ganger.

# Definer løkken for å iterere 10 ganger
foreach $ nummer (1… 10)
# Skriv ut gjeldende verdi
Skriv ut "Gjeldende nummer er $ nummer.\ n ";
#Terminende sløyfen basert på 'IF' -tilstanden
sist hvis $ nummer> 3;

# Skriv ut termineringsmeldingen
Skriv ut "Løkken avsluttes.\ n ";

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor.

Eksempel-6: Les verdiene til flere matriser

Opprett en Perl -fil med følgende kode som vil skrive ut verdiene til to numeriske matriser ved å bruke en enkelt for hver Løkke. Verdiene til to matriser og de sammenslåtte verdiene til disse matriser vil bli skrevet ut etter å ha utført koden.

# Definer den første matrisen
@array1 = (20, 30, 65);
# Definer den andre matrisen
@array2 = (45, 18, 60, 11);
Skriv ut "de første arrayverdiene er: \ n", join (",@array1)," \ n ";
Skriv ut "de andre arrayverdiene er: \ n", join (",@array2)," \ n ";
Skriv ut "Verdiene til begge matriser er: \ n";
# Les verdiene til begge matriser ved hjelp av loop
Foreach $ nummer ( @array1, @array2)

# Skriv ut arrayverdien
Skriv ut "$ nummer";

skriv ut "\ n";

Produksjon
Følgende utgang vises etter å ha utført koden ovenfor

Konklusjon

Måtene å bruke på foreach Loop for å analysere endimensjonale matriser, todimensjonale matriser, flere matriser og filinnholdet er vist i denne opplæringen for å hjelpe Perl-brukeren til å kjenne bruken av for hver sløyfe i perl ordentlig.