Reference pole Perl

Reference Pole Perl



Když je vytvořena referenční proměnná pro libovolnou proměnnou a je-li změněna hodnota hlavní proměnné, je zároveň změněna hodnota referenční proměnné. Protože proměnná „hlavní“ i „referenční“ sdílejí stejné umístění v paměti. Referenční proměnnou jak skalární proměnné, tak vektorové proměnné lze definovat v Perlu. Pole je jedním typem vektorové proměnné v Perlu. Metody vytváření a používání referenční proměnné pole Perl jsou uvedeny v tomto tutoriálu.

Různá použití reference pole

Použití referenčních proměnných pole pro různé účely je uvedeno v následujícím textu:

Proměnná pole Referenční proměnná pole Účel
@array @{ $ref_array } Používá se k odkazování na všechny hodnoty pole.
skalární @array skalární @ref_array Používá se k počítání celkového počtu polí.
$#pole $#ref_array Používá se k definování největšího indexu.
$array[index] $tef_array->[index] Používá se k odkazování na konkrétní prvek pole.

Použití odkazů na pole Perl

V této části tutoriálu jsou uvedena různá použití referenčních proměnných pole Perl.







Příklad 1: Vytvoření reference pole

Vytvořte soubor Perl pomocí následujícího skriptu, který deklaruje pole čtyř řetězcových hodnot a referenční proměnnou tohoto pole. Referenční proměnná ukládá paměťové umístění hlavního pole a obě proměnné sdílejí stejné umístění. Obsah referenční proměnné a hlavního pole se vytiskne později.



#!/usr/bin/perl

používat přísné ;
použití varování ;
použijte 5.34.0 ;
použití Data::Dumper ;

#Deklarujte pole řetězců
můj @ opozdilec = ( 'Perl' , 'Jáva' , 'Bash' , 'Krajta' ) ;

#Vytvořte odkaz na proměnnou pole
můj $ref_array = \ @ opozdilec ;

říci 'Obsah odkazu na pole je $ref_array' ;

říci 'Hodnoty pole pomocí proměnné Dumber jsou: ' ;
# Vytiskněte referenční proměnnou pomocí proměnné Dumper
tisk Vyklápěč $ref_array ;

Výstup:



Při provádění skriptu se zobrazí následující výstup:





  p1

Příklad 2: Aktualizujte pole po vytvoření reference

Vytvořte soubor Perl pomocí následujícího skriptu, který ukazuje, že pokud se změní jakýkoli prvek hlavního pole, změní se současně i odpovídající hodnota proměnné referenčního pole. Všechny hodnoty hlavního pole se vytisknou před aktualizací jakékoli hodnoty pole a všechny hodnoty pole reference se vytisknou po aktualizaci druhého prvku pomocí proměnné „dump“.



#!/usr/bin/perl

používat přísné ;
použití varování ;
použijte 5.34.0 ;
použití Data::Dumper ;

#Deklarujte pole řetězců
můj @ opozdilec = ( 'Perl' , 'Jáva' , 'Bash' , 'Krajta' ) ;

říci 'Hodnoty hlavního pole jsou: ' ;
# Vytiskněte referenční proměnnou pomocí proměnné Dumper
tisk Vyklápěč \ @ opozdilec ;

#Vytvořte odkaz na proměnnou pole
můj $ref_array = \ @ opozdilec ;

# Aktualizujte 2. prvek pole
$strarr [ 1 ] = 'C++' ;

říci 'Hodnoty referenčního pole (po aktualizaci hlavního pole) jsou: ' ;
# Vytiskněte referenční proměnnou pomocí proměnné Dumper
tisk Vyklápěč $ref_array ;

Výstup:

Po provedení skriptu se zobrazí následující výstup. Podle výstupu se druhý prvek v referenčním poli změní na „C++“, protože druhý prvek hlavního pole je aktualizován hodnotou „C++“:

  p2

Příklad 3: Předejte referenci pole do podprogramu

Vytvořte soubor Perl pomocí následujícího skriptu, kde je referenční proměnná pole odeslána jako argument podprogramu. Hodnota třetího indexu pole je aktualizována pomocí referenční proměnné uvnitř podprogramu. Hodnoty hlavního pole jsou vytištěny před a po aktualizaci třetího indexu referenční proměnné pomocí proměnné „dump“.

#!/usr/bin/perl

používat přísné ;
použití varování ;
použijte 5.34.0 ;
použití Data::Dumper ;

#Deklarujte pole čísel
můj @ čísla = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

říci 'Hodnoty hlavního pole před aktualizací:' ;
tisk Vyklápěč \ @ čísla ;

#Předejte pole jako referenci do podprogramu
read_array ( \ @ čísla ) ;
#Declare podprogram pro úpravu hodnoty pole
sub read_array
{
#Definujte referenční proměnnou pole
můj $arr_ref = $_ [ 0 ] ;
# Aktualizujte třetí prvek pole
$arr_ref- > [ 2 ] = 99 ;
}
říci 'Hodnoty hlavního pole po aktualizaci:' ;
tisk Vyklápěč \ @ čísla ;

Výstup:

Po provedení skriptu se zobrazí následující výstup. Třetí prvek pole byl 90 a tato hodnota se změní na 99 pomocí referenční proměnné pole. Třetí prvek původního pole je také aktualizován o 99, protože obě proměnné sdílejí stejné umístění:

  p3

Závěr

V tomto kurzu jsou uvedeny metody přístupu k hodnotám pole nebo jejich aktualizace vytvořením referenční proměnné pole. Uživatelé Perlu po přečtení tohoto návodu získají jasnou představu o používání referenčních proměnných pole Perl.