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:
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:
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/perlbrug 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:
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.