Različite upotrebe referenci polja
Upotreba referentnih varijabli polja za različite svrhe prikazana je u sljedećem:
Varijabla polja | Referentna varijabla polja | Svrha |
@niz | @{$ref_array} | Koristi se za označavanje svih vrijednosti polja. |
skalarni @niz | skalar @ref_array | Koristi se za brojanje ukupnog broja nizova. |
$#niz | $#ref_array | Koristi se za definiranje najvećeg indeksa. |
$niz[indeks] | $tef_array->[index] | Koristi se za označavanje određenog elementa niza. |
Upotreba referenci Perl polja
U ovom dijelu vodiča prikazane su različite upotrebe referentnih varijabli Perl niza.
Primjer 1: Stvorite referencu polja
Stvorite Perl datoteku sa sljedećom skriptom koja deklarira niz od četiri vrijednosti niza i referentnu varijablu tog niza. Referentna varijabla pohranjuje memorijsku lokaciju glavnog niza i obje varijable dijele istu lokaciju. Sadržaj referentne varijable i glavnog polja ispisuje se kasnije.
#!/usr/bin/perl
koristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristite Data::Dumper ;
#Deklarirajte niz nizova
moj @ lutalica = ( 'Perl' , 'Java' , 'Bash' , 'Piton' ) ;
#Stvorite referencu varijable polja
moj $ref_array = \ @ lutalica ;
reći 'Sadržaj reference polja je $ref_array' ;
reći 'Vrijednosti polja koje koriste Dumber varijablu su: ' ;
#Ispiši referentnu varijablu s Dumper varijablom
ispisati Dumper $ref_array ;
Izlaz:
Prilikom izvršavanja skripte pojavljuje se sljedeći izlaz:
Primjer 2: ažuriranje polja nakon stvaranja reference
Napravite Perl datoteku sa sljedećom skriptom koja pokazuje da ako se promijeni bilo koji element glavnog niza, odgovarajuća vrijednost varijable referentnog niza se mijenja u isto vrijeme. Sve vrijednosti glavnog niza ispisuju se prije ažuriranja bilo koje vrijednosti niza, a sve vrijednosti referentnog niza ispisuju se nakon ažuriranja drugog elementa pomoću varijable 'dump'.
#!/usr/bin/perl
koristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristite Data::Dumper ;
#Deklarirajte niz nizova
moj @ lutalica = ( 'Perl' , 'Java' , 'Bash' , 'Piton' ) ;
reći 'Glavne vrijednosti niza su: ' ;
#Ispiši referentnu varijablu s Dumper varijablom
ispisati kiper \ @ lutalica ;
#Stvorite referencu varijable polja
moj $ref_array = \ @ lutalica ;
#Ažuriraj 2. element niza
$strarr [ 1 ] = 'C++' ;
reći 'Vrijednosti referentnog niza (nakon ažuriranja glavnog niza) su: ' ;
#Ispiši referentnu varijablu s Dumper varijablom
ispisati Dumper $ref_array ;
Izlaz:
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Prema izlazu, drugi element je promijenjen u 'C++' u referentnom nizu jer je drugi element glavnog niza ažuriran vrijednošću 'C++':
Primjer 3: Proslijedite referencu polja u potprogram
Stvorite Perl datoteku sa sljedećom skriptom gdje se referentna varijabla niza šalje kao argument potprograma. Vrijednost trećeg indeksa niza ažurira se pomoću referentne varijable unutar potprograma. Vrijednosti glavnog niza ispisuju se prije i nakon ažuriranja trećeg indeksa referentne varijable pomoću varijable 'dump'.
#!/usr/bin/perlkoristite strogi ;
koristiti upozorenja ;
koristiti 5.34.0 ;
koristite Data::Dumper ;
#Deklarirajte niz brojeva
moj @ brojevima = ( 67 , 3. 4 , 90 , 12 , 39 ) ;
reći 'Vrijednosti glavnog niza prije ažuriranja:' ;
ispisati kiper \ @ brojevima ;
#Proslijedite niz kao referencu u potprogram
pročitaj polje ( \ @ brojevima ) ;
#Declare potprogram za izmjenu vrijednosti niza
podniz za čitanje
{
#Definirajte referentnu varijablu polja
moj $arr_ref = $_ [ 0 ] ;
#Ažuriraj treći element niza
$arr_ref- > [ 2 ] = 99 ;
}
reći 'Vrijednosti glavnog niza nakon ažuriranja:' ;
ispisati kiper \ @ brojevima ;
Izlaz:
Nakon izvršavanja skripte pojavljuje se sljedeći izlaz. Treći element niza bio je 90 i ta se vrijednost mijenja u 99 pomoću referentne varijable niza. Treći element izvornog niza također se ažurira za 99 jer obje varijable dijele istu lokaciju:
Zaključak
Metode pristupa ili ažuriranja vrijednosti niza stvaranjem referentne varijable niza prikazane su u ovom vodiču. Korisnici Perla će nakon čitanja ovog vodiča dobiti jasan koncept korištenja referentnih varijabli Perl polja.