Perl Array Reference

Perl Array Reference



Ko je referenčna spremenljivka ustvarjena za katero koli spremenljivko in če se spremeni vrednost glavne spremenljivke, se hkrati spremeni tudi vrednost referenčne spremenljivke. Ker si tako 'glavna' spremenljivka kot 'referenčna' spremenljivka delita isto lokacijo v pomnilniku. Referenčno spremenljivko tako skalarne spremenljivke kot vektorske spremenljivke je mogoče definirati v Perlu. Matrika je ena vrsta vektorske spremenljivke v Perlu. Metode ustvarjanja in uporabe referenčne spremenljivke matrike Perl so prikazane v tej vadnici.

Različne uporabe reference polja

Uporabe referenčnih spremenljivk matrike za različne namene so prikazane v nadaljevanju:

Spremenljivka niza Referenčna spremenljivka polja Namen
@array @{ $ref_array} Uporablja se za sklicevanje na vse vrednosti polja.
skalar @matrika skalar @ref_array Uporablja se za štetje skupnega števila nizov.
$#matrika $#ref_array Uporablja se za določitev največjega indeksa.
$matrika[indeks] $tef_array->[index] Uporablja se za sklicevanje na določen element matrike.

Uporaba referenc Perl Array

V tem delu vadnice so prikazane različne uporabe referenčnih spremenljivk polja Perl.







Primer 1: Ustvarite referenco polja

Ustvarite datoteko Perl z naslednjim skriptom, ki deklarira matriko štirih vrednosti niza in referenčno spremenljivko te matrike. Referenčna spremenljivka shrani pomnilniško lokacijo glavne matrike in obe spremenljivki si delita isto lokacijo. Vsebina referenčne spremenljivke in glavne matrike se natisne pozneje.



#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;
uporabite Data::Dumper ;

#Deklarajte matriko nizov
moj @ straggler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

#Ustvarite referenco spremenljivke polja
moj $ref_array = \ @ straggler ;

reči 'Vsebina sklica na polje je $ref_array' ;

reči 'Vrednosti polja, ki uporabljajo spremenljivko Dumber, so: ' ;
#Natisnite referenčno spremenljivko s spremenljivko Dumper
tiskanje Dumper $ref_array ;

Izhod:



Med izvajanjem skripta se prikaže naslednji rezultat:





  p1

Primer 2: Posodobite matriko po ustvarjanju sklica

Ustvarite datoteko Perl z naslednjim skriptom, ki kaže, da se ob spremembi katerega koli elementa glavne matrike hkrati spremeni ustrezna vrednost spremenljivke referenčne matrike. Vse vrednosti glavne matrike se natisnejo pred posodobitvijo katere koli vrednosti matrike, vse vrednosti referenčne matrike pa se natisnejo po posodobitvi drugega elementa z uporabo spremenljivke »dump«.



#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;
uporabite Data::Dumper ;

#Deklarajte matriko nizov
moj @ straggler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

reči 'Glavne vrednosti niza so: ' ;
#Natisnite referenčno spremenljivko s spremenljivko Dumper
tiskanje prekucnik \ @ straggler ;

#Ustvarite referenco spremenljivke polja
moj $ref_array = \ @ straggler ;

#Posodobi 2. element matrike
$strarr [ 1 ] = 'C++' ;

reči 'Vrednosti referenčnega polja (po posodobitvi glavnega polja) so: ' ;
#Natisnite referenčno spremenljivko s spremenljivko Dumper
tiskanje Dumper $ref_array ;

Izhod:

Po izvedbi skripta se prikaže naslednji rezultat. Glede na izhod se drugi element spremeni v »C++« v referenčni matriki, ker je drugi element glavne matrike posodobljen z vrednostjo »C++«:

  p2

Primer 3: Prenesite sklic na polje v podprogram

Ustvarite datoteko Perl z naslednjim skriptom, kjer je referenčna spremenljivka matrike poslana kot argument podprograma. Vrednost tretjega indeksa matrike se posodobi z referenčno spremenljivko znotraj podprograma. Vrednosti glavne matrike so natisnjene pred in po posodobitvi tretjega indeksa referenčne spremenljivke z uporabo spremenljivke »dump«.

#!/usr/bin/perl

uporabite strogo ;
uporaba opozorila ;
uporabi 5.34.0 ;
uporabite Data::Dumper ;

#Deklarajte niz števil
moj @ številke = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

reči 'Vrednosti glavne matrike pred posodobitvijo:' ;
tiskanje prekucnik \ @ številke ;

#Posredujte polje kot referenco v podprogram
read_array ( \ @ številke ) ;
#Declare podprogram za spreminjanje vrednosti polja
sub read_array
{
#Določite referenčno spremenljivko matrike
moj $arr_ref = $_ [ 0 ] ;
#Posodobi tretji element matrike
$arr_ref- > [ 2 ] = 99 ;
}
reči 'Vrednosti glavne matrike po posodobitvi:' ;
tiskanje prekucnik \ @ številke ;

Izhod:

Po izvedbi skripta se prikaže naslednji rezultat. Tretji element matrike je bil 90 in ta vrednost se spremeni v 99 z uporabo referenčne spremenljivke matrike. Tretji element prvotne matrike je prav tako posodobljen za 99, ker imata obe spremenljivki isto lokacijo:

  p3

Zaključek

Metode dostopanja ali posodabljanja vrednosti matrike z ustvarjanjem referenčne spremenljivke matrike so prikazane v tej vadnici. Uporabniki Perla bodo po branju te vadnice dobili jasen koncept uporabe referenčnih spremenljivk matrike Perl.