Perl Array Reference

Perl Array Reference



Når referencevariablen oprettes for en variabel, og hvis værdien af ​​hovedvariablen ændres, ændres værdien af ​​referencevariablen samtidig. Fordi både 'hoved'-variablen og 'reference'-variablen deler den samme placering i hukommelsen. Referencevariablen for både den skalarvariable og vektorvariablen kan defineres i Perl. Arrayet er en type vektorvariabel i Perl. Metoderne til at oprette og bruge referencevariablen for Perl-arrayet er vist i denne øvelse.

Forskellige anvendelser af Array Reference

Anvendelsen af ​​array-referencevariablerne til forskellige formål er vist i det følgende:

Array variabel Array reference variabel Formål
@array @{ $ref_array } Det bruges til at henvise til alle matrixværdier.
skalar @array skalar @ref_array Det bruges til at tælle det samlede antal arrays.
$#array $#ref_array Det bruges til at definere det største indeks.
$array[indeks] $tef_array->[indeks] Det bruges til at henvise til det særlige element i arrayet.

Brug af Perl Array References

Forskellige anvendelser af Perl-array-referencevariablerne er vist i denne del af selvstudiet.







Eksempel 1: Opret en matrixreference

Opret en Perl-fil med følgende script, der erklærer en matrix med fire strengværdier og referencevariablen for denne matrix. Referencevariablen gemmer hukommelsesplaceringen for hovedarrayet, og begge variabler deler den samme placering. Indholdet af referencevariablen og hovedarrayet udskrives senere.



#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;
brug Data::Dumper ;

#Deklarer en række af strenge
min @ efterlader = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

#Opret en reference for arrayvariablen
mit $ref_array = \ @ efterlader ;

sige 'Indholdet af array-referencen er $ref_array' ;

sige 'Array-værdier, der bruger Dumber-variablen er:' ;
#Udskriv referencevariablen med Dumper-variablen
Print Dumper $ref_array ;

Produktion:



Følgende output vises, når scriptet udføres:





  p1

Eksempel 2: Opdater arrayet efter oprettelse af referencen

Opret en Perl-fil med følgende script, som viser, at hvis et element i hovedarrayet ændres, ændres den tilsvarende værdi af referencearrayvariablen på samme tid. Alle værdier af hovedarrayet udskrives før opdatering af en hvilken som helst værdi af arrayet, og alle værdier af referencearrayet udskrives efter opdatering af det andet element ved hjælp af 'dump'-variablen.



#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;
brug Data::Dumper ;

#Deklarer en række af strenge
min @ efterlader = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

sige 'Hovedmatrixværdier er:' ;
#Udskriv referencevariablen med Dumper-variablen
Print Dumper \ @ efterlader ;

#Opret en reference for arrayvariablen
mit $ref_array = \ @ efterlader ;

#Opdater det andet element i arrayet
$strarr [ 1 ] = 'C++' ;

sige 'Reference Array-værdier (efter opdatering af hovedarrayet) er:' ;
#Udskriv referencevariablen med Dumper-variablen
Print Dumper $ref_array ;

Produktion:

Følgende output vises efter eksekvering af scriptet. Ifølge outputtet ændres det andet element til 'C++' i referencearrayet, fordi det andet element i hovedarrayet er opdateret med 'C++'-værdien:

  s2

Eksempel 3: Send array-referencen ind i en underrutine

Opret en Perl-fil med følgende script, hvor referencevariablen for arrayet sendes som argumentet for subrutinen. Værdien af ​​det tredje indeks i arrayet opdateres ved hjælp af referencevariablen inde i subrutinen. Værdierne for hovedarrayet udskrives før og efter opdatering af referencevariablens tredje indeks ved hjælp af 'dump'-variablen.

#!/usr/bin/perl

brug strenge ;
brug advarsler ;
brug 5.34.0 ;
brug Data::Dumper ;

#Deklarer en matrix af tal
min @ tal = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

sige 'Værdierne for hovedarrayet før opdatering:' ;
Print Dumper \ @ tal ;

#Send arrayet som en reference ind i subrutinen
read_array ( \ @ tal ) ;
#Erklærer subrutine for at ændre arrayværdien
under læse_array
{
#Definer array-referencevariablen
min $arr_ref = $_ [ 0 ] ;
#Opdater det tredje element i arrayet
$arr_ref- > [ 2 ] = 99 ;
}
sige 'Værdierne for hovedarrayet efter opdatering:' ;
Print Dumper \ @ tal ;

Produktion:

Følgende output vises efter eksekvering af scriptet. Det tredje element i arrayet var 90, og denne værdi ændres til 99 ved at bruge arrayets referencevariabel. Det tredje element i det originale array er også opdateret med 99, fordi begge variabler deler samme placering:

  s3

Konklusion

Metoderne til at få adgang til eller opdatere array-værdierne ved at oprette referencevariablen for arrayet er vist i denne øvelse. Perl-brugere vil få et klart koncept for at bruge referencevariablerne i Perl-arrayet efter at have læst denne vejledning.