Perli massiivi viide

Perli Massiivi Viide



Kui mis tahes muutuja jaoks luuakse võrdlusmuutuja ja kui põhimuutuja väärtust muudetakse, muudetakse samal ajal ka võrdlusmuutuja väärtust. Kuna nii 'peamine' muutuja kui ka 'viite' muutuja jagavad mälus sama asukohta. Nii skalaarmuutuja kui ka vektormuutuja võrdlusmuutuja saab defineerida Perlis. Massiiv on Perlis ühte tüüpi vektormuutujad. Selles õpetuses on näidatud Perli massiivi viitemuutuja loomise ja kasutamise meetodid.

Massiiviviidete erinevad kasutusviisid

Massiivi viitemuutujate kasutamine erinevatel eesmärkidel on näidatud järgmiselt.

Massiivi muutuja Massiivi viitemuutuja Eesmärk
@massiiv @{ $ref_array } Seda kasutatakse kõikidele massiivi väärtustele viitamiseks.
skalaar @massiiv skalaar @ref_array Seda kasutatakse massiivide koguarvu loendamiseks.
$#massiivi $#ref_array Seda kasutatakse suurima indeksi määratlemiseks.
$massiiv[indeks] $tef_massiiv->[indeks] Seda kasutatakse massiivi konkreetsele elemendile viitamiseks.

Perli massiivi viidete kasutamine

Selles õpetuse osas kirjeldatakse Perli massiivi viitemuutujate erinevaid kasutusviise.







Näide 1: Looge massiiviviide

Looge Perli fail järgmise skriptiga, mis deklareerib neljast stringiväärtusest koosneva massiivi ja selle massiivi viitemuutuja. Võrdlusmuutuja salvestab põhimassiivi mälu asukoha ja mõlemad muutujad jagavad sama asukohta. Viitemuutuja ja põhimassiivi sisu trükitakse hiljem.



#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;
kasuta Data::kallurit ;

#Deklareerige stringi massiiv
minu @ hulkur = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

#Looge massiivimuutujale viide
minu $ref_array = \ @ hulkur ;

öelda 'Massiivi viite sisu on $ref_array' ;

öelda 'Dumberi muutujat kasutavad massiivi väärtused on järgmised: ' ;
#Prindi viitemuutuja koos muutujaga Dumper
printida Kallur $ref_array ;

Väljund:



Skripti käivitamisel kuvatakse järgmine väljund:





  p1

Näide 2: Värskendage massiivi pärast viite loomist

Looge järgmise skriptiga Perli fail, mis näitab, et kui mõnda põhimassiivi elementi muudetakse, muudetakse samal ajal ka võrdlusmassiivi muutuja vastavat väärtust. Kõik põhimassiivi väärtused prinditakse enne massiivi mis tahes väärtuse värskendamist ja kõik viitemassiivi väärtused trükitakse pärast teise elemendi värskendamist muutuja „dump” abil.



#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;
kasuta Data::kallurit ;

#Deklareerige stringi massiiv
minu @ hulkur = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

öelda 'Peamised massiivi väärtused on: ;
#Prindi viitemuutuja koos muutujaga Dumper
printida Kallur \ @ hulkur ;

#Looge massiivimuutujale viide
minu $ref_array = \ @ hulkur ;

#Uuenda massiivi 2. elementi
$strarr [ 1 ] = 'C++' ;

öelda 'Viitemassiivi väärtused (pärast põhimassiivi värskendamist) on järgmised: ' ;
#Prindi viitemuutuja koos muutujaga Dumper
printida Kallur $ref_array ;

Väljund:

Pärast skripti täitmist ilmub järgmine väljund. Vastavalt väljundile muudetakse võrdlusmassiivi teine ​​element 'C++', kuna põhimassiivi teist elementi värskendatakse 'C++' väärtusega:

  p2

Näide 3: edastage massiiviviide alamprogrammi

Looge järgmise skriptiga Perli fail, kus alamprogrammi argumendina saadetakse massiivi viitemuutuja. Massiivi kolmanda indeksi väärtust värskendatakse alamprogrammi sees oleva viitemuutuja abil. Põhimassiivi väärtused trükitakse enne ja pärast võrdlusmuutuja kolmanda indeksi värskendamist, kasutades muutujat “dump”.

#!/usr/bin/perl

kasutage ranget ;
kasutada hoiatused ;
kasuta 5.34.0 ;
kasuta Data::kallurit ;

#Deklareerige arvude massiiv
minu @ numbrid = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

öelda 'Põhimassiivi väärtused enne värskendamist:' ;
printida Kallur \ @ numbrid ;

#Edasta massiiv viitena alamprogrammi
loe_massiiv ( \ @ numbrid ) ;
#Deklareeri alamprogramm massiivi väärtuse muutmiseks
alam read_massiiv
{
#Defineerige massiivi viitemuutuja
minu $arr_ref = $_ [ 0 ] ;
#Uuendage massiivi kolmandat elementi
$arr_ref- > [ 2 ] = 99 ;
}
öelda 'Põhimassiivi väärtused pärast värskendamist:' ;
printida Kallur \ @ numbrid ;

Väljund:

Pärast skripti täitmist ilmub järgmine väljund. Massiivi kolmas element oli 90 ja see väärtus muudetakse massiivi võrdlusmuutuja abil 99-ks. Algse massiivi kolmandat elementi värskendatakse samuti 99 võrra, kuna mõlemad muutujad jagavad sama asukohta:

  p3

Järeldus

Selles õpetuses on näidatud massiivi väärtustele juurdepääsu või nende värskendamise meetodid massiivi viitemuutuja loomise teel. Perli kasutajad saavad pärast selle õpetuse lugemist selge kontseptsiooni Perli massiivi viitemuutujate kasutamise kohta.