Perl Array Reference

Perl Array Reference



Når referansevariabelen opprettes for en hvilken som helst variabel, og hvis verdien til hovedvariabelen endres, endres verdien til referansevariabelen samtidig. Fordi både 'hoved'-variabelen og 'referanse'-variabelen deler samme plassering i minnet. Referansevariabelen til både skalarvariabelen og vektorvariabelen kan defineres i Perl. Matrisen er en type vektorvariabel i Perl. Metodene for å lage og bruke referansevariabelen til Perl-matrisen er vist i denne opplæringen.

Ulike bruksområder for arrayreferansen

Bruken av arrayreferansevariablene for forskjellige formål er vist i følgende:

Matrisevariabel Matrisereferansevariabel Hensikt
@array @{ $ref_array } Den brukes til å referere til alle matriseverdier.
skalar @array skalar @ref_array Den brukes til å telle det totale antallet arrays.
$#array $#ref_array Den brukes til å definere den største indeksen.
$array[indeks] $tef_array->[indeks] Det brukes til å referere til det spesielle elementet i matrisen.

Bruk av Perl Array References

Ulike bruksområder for Perl-arrayreferansevariablene er vist i denne delen av opplæringen.







Eksempel 1: Opprett en matrisereferanse

Lag en Perl-fil med følgende skript som erklærer en matrise med fire strengverdier og referansevariabelen til denne matrisen. Referansevariabelen lagrer minneplasseringen til hovedmatrisen og begge variablene deler samme plassering. Innholdet i referansevariabelen og hovedmatrisen skrives ut senere.



#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;
bruk Data::Dumper ;

#Deklarer en rekke med strenger
min @ etternøler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

#Opprett en referanse for matrisevariabelen
min $ref_array = \ @ etternøler ;

si 'Innholdet i arrayreferansen er $ref_array' ;

si 'Array-verdier som bruker Dumber-variabelen er: ' ;
#Skriv ut referansevariabelen med Dumper-variabelen
skrive ut Dumper $ref_array ;

Produksjon:



Følgende utdata vises når skriptet kjøres:





  p1

Eksempel 2: Oppdater matrisen etter å ha opprettet referansen

Lag en Perl-fil med følgende skript som viser at hvis et element i hovedmatrisen endres, endres den tilsvarende verdien til referansematrisevariabelen samtidig. Alle verdiene til hovedmatrisen skrives ut før oppdatering av en hvilken som helst verdi av matrisen, og alle verdiene til referansematrisen skrives ut etter oppdatering av det andre elementet ved å bruke 'dump'-variabelen.



#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;
bruk Data::Dumper ;

#Deklarer en rekke med strenger
min @ etternøler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

si 'Hovedmatriseverdier er: ' ;
#Skriv ut referansevariabelen med Dumper-variabelen
skrive ut Dumper \ @ etternøler ;

#Opprett en referanse for matrisevariabelen
min $ref_array = \ @ etternøler ;

#Oppdater det andre elementet i matrisen
$strarr [ 1 ] = 'C++' ;

si 'Referansematriseverdier (etter oppdatering av hovedmatrisen) er: ' ;
#Skriv ut referansevariabelen med Dumper-variabelen
skrive ut Dumper $ref_array ;

Produksjon:

Følgende utdata vises etter utføring av skriptet. I henhold til utgangen endres det andre elementet til 'C++' i referansematrisen fordi det andre elementet i hovedmatrisen oppdateres med 'C++'-verdien:

  s2

Eksempel 3: Send arrayreferansen til en subrutine

Lag en Perl-fil med følgende skript hvor referansevariabelen til matrisen sendes som argumentet til subrutinen. Verdien til den tredje indeksen til matrisen oppdateres ved å bruke referansevariabelen inne i subrutinen. Verdiene til hovedmatrisen skrives ut før og etter oppdatering av den tredje indeksen til referansevariabelen ved å bruke 'dump'-variabelen.

#!/usr/bin/perl

bruk strenge ;
bruk advarsler ;
bruk 5.34.0 ;
bruk Data::Dumper ;

#Deklarer en rekke tall
min @ tall = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

si 'Verdiene til hovedmatrisen før oppdatering:' ;
skrive ut Dumper \ @ tall ;

#Send arrayet som en referanse inn i subrutinen
read_array ( \ @ tall ) ;
#Declare subrutine for å endre matriseverdien
sub read_array
{
#Definer matrisereferansevariabelen
min $arr_ref = $_ [ 0 ] ;
#Oppdater det tredje elementet i matrisen
$arr_ref- > [ 2 ] = 99 ;
}
si 'Verdiene til hovedmatrisen etter oppdatering:' ;
skrive ut Dumper \ @ tall ;

Produksjon:

Følgende utdata vises etter utføring av skriptet. Det tredje elementet i matrisen var 90 og denne verdien endres til 99 ved å bruke referansevariabelen til matrisen. Det tredje elementet i den opprinnelige matrisen er også oppdatert med 99 fordi begge variablene deler samme plassering:

  s3

Konklusjon

Metodene for å få tilgang til eller oppdatere matriseverdiene ved å lage referansevariabelen til matrisen er vist i denne opplæringen. Perl-brukere vil få et klart konsept for å bruke referansevariablene til Perl-matrisen etter å ha lest denne opplæringen.