Reference dengan Struktur Data yang Lebih Rumit Lagi
use strict;Sampai saat ini array @tim_persib mempunyai 3 elemen, yang semuanya adalah reference ke suatu array dan tiap-tiap elemen (reference) tersebut mempunyai 2 elemen yang terdiri atas string dan reference.
my @strikers = qw(barkoui zaenal brahima doni);
my @strikers_persib = ("strikers", \@strikers);
my @defenders = qw(antonio charis usep edi);
my @defenders_persib = ("defenders", \@defenders);
my @midfielders = qw(eka salim erik yaris);
my @midfielders_persib = ("midfielders", \@midfielders);
my @tim_persib =(\@strikers_persib,\@defenders_persib,
\@midfielders_persib);
@tim_persib = Array reference $persib[0]:string (posisi)Dan jika kita menuliskan "print $tim_persib[0], "\n"; " maka kita akan mendapatkan "ARRAY(0x816ae4c)", karena $tim_persib[0] adalah sebuah array reference, maka kita harus men dereferencenya terlebih dahulu, dengan @{$tim_persib[0]}.
Array reference
Array Reference $persib[1]:string
Array reference
Array Reference $persib[2]:string
Array Reference
print @{$tim_persib[0]}, "\n";Yang akan mencetak 2 elemen anggota dari Array Reference \@strikers_persib, yaitu string "strikers" dan Array Reference \@strikers (alamat memori). Jika kita hanya ingin mencetak string "strikers" saja, maka cukup dengan @{$tim_persib[0]}[0] Atau ${$tim_persib[0]}[0]; Dan untuk mencetak seluruh striker $tim_persib adalah
Print @{$tim_persib[0][1]}
Menyederhanakan Notasi
Jika notasinya terlalu susah dibaca/rumit/kepanjangan maka kita bisa pakai tanda panah dan sebelumnya si array @tim_persib dijadikan array reference, maksudnyamy $maung_bandung = \@tim_persib;
print $maung_bandung->[0][1][1], "\n"; #atau
print @{$maung_bandung->[0][1]}, "\n" ; #semua striker akan dicetak
Rereference dan dereference variabel Hash
use strict;
my %pemain = (
nama => 'edi kurnia',
nomor => '1',
posisi => 'keeper',
tinggi => '186',
);
my $ref_hash = \%pemain; #membuat hash reference
print %{$ref_hash}->{'keys'},"\n"; #dereference atau dengan
foreach(keys %$ref_hash) {
print $_, " : ", %{$ref_hash}->{$_}, "\n";
}
.."..Blogging : Programing.."..
Komentar