Perl Array Reference

Perl Array Reference



Kun viitemuuttuja luodaan mille tahansa muuttujalle ja jos päämuuttujan arvoa muutetaan, viitemuuttujan arvoa muutetaan samalla. Koska sekä 'päämuuttuja' että 'viite'-muuttuja jakavat saman sijainnin muistissa. Sekä skalaarimuuttujan että vektorimuuttujan viitemuuttuja voidaan määritellä Perlissä. Taulukko on eräänlainen vektorimuuttuja Perlissä. Perl-taulukon viitemuuttujan luonti- ja käyttötavat on esitetty tässä opetusohjelmassa.

Array-viittauksen eri käyttötavat

Taulukon viitemuuttujien käyttö eri tarkoituksiin on esitetty seuraavassa:

Array muuttuja Taulukon viitemuuttuja Tarkoitus
@array @{ $ref_array } Sitä käytetään viittaamaan kaikkiin taulukon arvoihin.
skalaari @array skalaari @ref_array Sitä käytetään taulukoiden kokonaismäärän laskemiseen.
$#array $#ref_array Sitä käytetään määrittämään suurin indeksi.
$array[index] $tef_array->[index] Sitä käytetään viittaamaan taulukon tiettyyn elementtiin.

Perl Array -viitteiden käyttötarkoitukset

Perl-taulukon viitemuuttujien erilaiset käyttötavat esitetään tässä opetusohjelman osassa.







Esimerkki 1: Luo taulukkoviittaus

Luo Perl-tiedosto seuraavalla komentosarjalla, joka ilmoittaa neljän merkkijonoarvon taulukon ja tämän taulukon viitemuuttujan. Viitemuuttuja tallentaa päätaulukon muistipaikan ja molemmat muuttujat jakavat saman sijainnin. Viitemuuttujan ja päätaulukon sisältö tulostetaan myöhemmin.



#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä Data::Dumper ;

#Ilmoita merkkijono
minun @ huijari = ( 'Perl' , 'Java' , 'Lyödä' , 'Python' ) ;

#Luo viite taulukkomuuttujaan
minun $ref_array = \ @ huijari ;

sanoa 'Matriisiviitteen sisältö on $ref_array' ;

sanoa 'Dumber-muuttujaa käyttävät taulukon arvot ovat: ' ;
#Tulosta viitemuuttuja Dumper-muuttujan kanssa
Tulosta Kippiauto $ref_array ;

Lähtö:



Seuraava tulos tulee näkyviin skriptiä suoritettaessa:





  p1

Esimerkki 2: Päivitä taulukko viitteen luomisen jälkeen

Luo Perl-tiedosto seuraavalla skriptillä, joka osoittaa, että jos jotakin päätaulukon elementtiä muutetaan, muuttuu samalla viitetaulukon muuttujan vastaava arvo. Kaikki päätaulukon arvot tulostetaan ennen minkään taulukon arvon päivittämistä ja kaikki viitetaulukon arvot tulostetaan sen jälkeen, kun toinen elementti on päivitetty 'dump'-muuttujan avulla.



#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä Data::Dumper ;

#Ilmoita merkkijono
minun @ huijari = ( 'Perl' , 'Java' , 'Lyödä' , 'Python' ) ;

sanoa 'Päätaulukon arvot ovat: ' ;
#Tulosta viitemuuttuja Dumper-muuttujan kanssa
Tulosta Kippiauto \ @ huijari ;

#Luo viite taulukkomuuttujaan
minun $ref_array = \ @ huijari ;

#Päivitä taulukon 2. elementti
$strarr [ 1 ] = 'C++' ;

sanoa 'Viitetaulukon arvot (päätaulukon päivityksen jälkeen) ovat: ' ;
#Tulosta viitemuuttuja Dumper-muuttujan kanssa
Tulosta Kippiauto $ref_array ;

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Lähdön mukaan viitetaulukon toinen elementti muuttuu 'C++':ksi, koska päätaulukon toinen elementti päivitetään 'C++'-arvolla:

  p2

Esimerkki 3: Siirrä taulukkoviittaus aliohjelmaan

Luo Perl-tiedosto seuraavalla skriptillä, jossa taulukon viitemuuttuja lähetetään aliohjelman argumenttina. Taulukon kolmannen indeksin arvo päivitetään aliohjelman sisällä olevan viitemuuttujan avulla. Päätaulukon arvot tulostetaan ennen ja jälkeen viitemuuttujan kolmannen indeksin päivittämisen 'dump'-muuttujalla.

#!/usr/bin/perl

käytä tiukkaa ;
käyttää varoitukset ;
käytä 5.34.0 ;
käytä Data::Dumper ;

#Ilmoita joukko numeroita
minun @ numeroita = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

sanoa 'Päätaulukon arvot ennen päivitystä:' ;
Tulosta Kippiauto \ @ numeroita ;

#Syötä matriisi viitteenä aliohjelmaan
read_array ( \ @ numeroita ) ;
#Declare aliohjelma taulukon arvon muokkaamiseksi
sub read_array
{
#Määritä taulukon viitemuuttuja
minun $arr_ref = $_ [ 0 ] ;
#Päivitä taulukon kolmas elementti
$arr_ref- > [ 2 ] = 99 ;
}
sanoa 'Päätaulukon arvot päivityksen jälkeen:' ;
Tulosta Kippiauto \ @ numeroita ;

Lähtö:

Seuraava tulos tulee näkyviin komentosarjan suorittamisen jälkeen. Matriisin kolmas elementti oli 90 ja tämä arvo muutetaan 99:ksi taulukon viitemuuttujan avulla. Alkuperäisen taulukon kolmatta elementtiä päivitetään myös 99:llä, koska molemmat muuttujat jakavat saman sijainnin:

  p3

Johtopäätös

Tässä opetusohjelmassa esitetään menetelmät taulukon arvojen saamiseksi tai päivittämiseksi luomalla taulukon viitemuuttuja. Perl-käyttäjät saavat selkeän käsityksen Perl-taulukon viitemuuttujien käytöstä luettuaan tämän opetusohjelman.