Me-reference dan dereference variabel array

Untuk membuat reference ke variabel array sama caranya dengan membuat reference variabel scalar yaitu dengan menambahkan tanda “\” (back slash) di depan variabel array yang akan di reference.

 use strict;

my @a=("Hendrix","Purple","Metallica","Korn"); #array
my $ref = \@a; #$ref adalah reference ke array @a

print @{$ref},"\n"; #dereference
print @$ref,"\n"; #cara lain

print @{$ref}[2], "\n";
#cara I untuk meng akses elemen-elemen dari array tersebut
print @$ref[2],"\n";
#cara II untuk meng akses elemen-elemen dari array tersebut
print @$ref->[2],"\n";
#cara III untuk meng akses elemen-elemen dari array tersebut
print @{$ref}->[2],"\n";
#cara IV untuk meng akses elemen-elemen dari array tersebut

Tanda panah bisa dipakai HANYA untuk mengakses elemen dari array atau hash alias tidak bisa dipakai untuk mengakses dari seluruh nilai yang tersimpan dalam array/hash tersebut.

Jika ingin dicopy ke variabel lain

 my $var_lain = $ref;

print @{$var_lain},"\n";
print @$var_lain->[1],"\n"; #atau
print $var_lain->[1],"\n";

Untuk menambahkan elemen ke array lewat reference

 push(@$var_lain,"Megadeth");
print @$var_lain,"\n";
print @$var_lain->[4],"\n";
print @$var_lain,"\n";

barusan kita memasukan elemen tambahan ke @$var_lain, apakah yang aslinya ikut berubah ?

 print "nilai \@\$ref sekarang :",@$ref,"\n";

untuk mengetahui jumlah index terakhir dari array

 my $terakhir = $#$var_lain;
print "index terakhir dari \@\$var_lain adalah", $terakhir, "\n";
print "yang mempunyai value :", @$var_lain->[4],"\n";

Ada berapa elemen di @$var_lain ?

 my $item = @$var_lain;
print "Ada ", $item ,"Elemen di \@\$var_lain \n";

.."..Blogging : Programing.."..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s