Perl Array Reference

Perl Array Reference



Kapag ang reference na variable ay ginawa para sa anumang variable, at kung ang halaga ng pangunahing variable ay binago, ang halaga ng reference na variable ay binago sa parehong oras. Dahil pareho ang 'pangunahing' variable at ang 'reference' na variable ay nagbabahagi ng parehong lokasyon sa memorya. Ang reference na variable ng parehong scalar variable at vector variable ay maaaring tukuyin sa Perl. Ang array ay isang uri ng vector variable sa Perl. Ang mga paraan ng paglikha at paggamit ng reference variable ng Perl array ay ipinapakita sa tutorial na ito.

Iba't ibang Gamit ng Array Reference

Ang mga paggamit ng array reference variable para sa iba't ibang layunin ay ipinapakita sa sumusunod:

Variable ng array Array reference variable Layunin
@array @{ $ref_array } Ito ay ginagamit upang sumangguni sa lahat ng mga halaga ng array.
scalar @array scalar @ref_array Ito ay ginagamit upang mabilang ang kabuuang bilang ng mga array.
$#array $#ref_array Ito ay ginagamit upang tukuyin ang pinakamalaking index.
$array[index] $tef_array->[index] Ito ay ginagamit upang sumangguni sa partikular na elemento ng array.

Mga Paggamit ng Perl Array References

Ang iba't ibang paggamit ng Perl array reference variable ay ipinapakita sa bahaging ito ng tutorial.







Halimbawa 1: Gumawa ng Array Reference

Gumawa ng Perl file na may sumusunod na script na nagdedeklara ng array ng apat na string value at ang reference variable ng array na ito. Iniimbak ng reference na variable ang lokasyon ng memorya ng pangunahing array at ang parehong mga variable ay nagbabahagi ng parehong lokasyon. Ang nilalaman ng reference variable at ang pangunahing array ay ipi-print sa ibang pagkakataon.



#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;
gamitin ang Data::Dumper ;

#Ipahayag ang isang hanay ng string
aking @ straggler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

#Gumawa ng reference ng array variable
ang aking $ref_array = \ @ straggler ;

sabihin 'Ang nilalaman ng sanggunian ng array ay $ref_array' ;

sabihin 'Ang mga halaga ng array gamit ang Dumber variable ay: ' ;
#I-print ang reference na variable gamit ang Dumper variable
print Dumper $ref_array ;

Output:



Ang sumusunod na output ay lilitaw kapag isinasagawa ang script:





  p1

Halimbawa 2: I-update ang Array pagkatapos Gumawa ng Reference

Gumawa ng Perl file na may sumusunod na script na nagpapakita na kung ang anumang elemento ng pangunahing array ay binago, ang katumbas na halaga ng reference array variable ay sabay na babaguhin. Ang lahat ng mga halaga ng pangunahing array ay naka-print bago i-update ang anumang halaga ng array at lahat ng mga halaga ng array ng reference ay naka-print pagkatapos i-update ang pangalawang elemento gamit ang 'dump' variable.



#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;
gamitin ang Data::Dumper ;

#Ipahayag ang isang hanay ng string
aking @ straggler = ( 'Perl' , 'Java' , 'Bash' , 'Python' ) ;

sabihin 'Ang mga pangunahing halaga ng array ay: ' ;
#I-print ang reference na variable gamit ang Dumper variable
print Dumper \ @ straggler ;

#Gumawa ng reference ng array variable
ang aking $ref_array = \ @ straggler ;

#I-update ang ika-2 elemento ng array
$strarr [ 1 ] = 'C++' ;

sabihin 'Ang mga halaga ng Reference Array (pagkatapos i-update ang pangunahing array) ay: ' ;
#I-print ang reference na variable gamit ang Dumper variable
print Dumper $ref_array ;

Output:

Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ayon sa output, ang pangalawang elemento ay binago sa 'C++' sa reference array dahil ang pangalawang elemento ng pangunahing array ay ina-update ng 'C++' na halaga:

  p2

Halimbawa 3: Ipasa ang Array Reference sa isang Subroutine

Gumawa ng Perl file na may sumusunod na script kung saan ipinapadala ang reference variable ng array bilang argumento ng subroutine. Ang halaga ng ikatlong index ng array ay ina-update gamit ang reference variable sa loob ng subroutine. Ang mga halaga ng pangunahing array ay naka-print bago at pagkatapos i-update ang ikatlong index ng reference variable gamit ang 'dump' variable.

#!/usr/bin/perl

gumamit ng mahigpit ;
gamitin mga babala ;
gamitin ang 5.34.0 ;
gamitin ang Data::Dumper ;

#Magdeklara ng hanay ng mga numero
aking @ numero = ( 67 , 3. 4 , 90 , 12 , 39 ) ;

sabihin 'Ang mga halaga ng pangunahing array bago i-update:' ;
print Dumper \ @ numero ;

#Ipasa ang array bilang reference sa subroutine
read_array ( \ @ numero ) ;
#Declare subroutine para baguhin ang array value
sub read_array
{
#Define ang array reference variable
ang aking $arr_ref = $_ [ 0 ] ;
#I-update ang ikatlong elemento ng array
$arr_ref- > [ 2 ] = 99 ;
}
sabihin 'Ang mga halaga ng pangunahing array pagkatapos ng pag-update:' ;
print Dumper \ @ numero ;

Output:

Ang sumusunod na output ay lilitaw pagkatapos isagawa ang script. Ang ikatlong elemento ng array ay 90 at ang halagang ito ay binago sa 99 gamit ang reference variable ng array. Ang ikatlong elemento ng orihinal na array ay ina-update din ng 99 dahil ang parehong mga variable ay nagbabahagi ng parehong lokasyon:

  p3

Konklusyon

Ang mga paraan ng pag-access o pag-update ng mga halaga ng array sa pamamagitan ng paglikha ng reference variable ng array ay ipinapakita sa tutorial na ito. Ang mga gumagamit ng Perl ay makakakuha ng malinaw na konsepto ng paggamit ng mga reference na variable ng Perl array pagkatapos basahin ang tutorial na ito.