-
To use a reference, say $ref, you put {$ref}
in place of a variable name (not counting the $,
%, or @):
$scalar ${$sRef}
@array @{$aRef}
$array[0] ${$aRef}[0]
$#array $#{$aRef}
%hash %{$hRef}
$hash{KEY} ${$hRef}{KEY}
@hash{@list} @{$hRef}{@list}
-
If the reference is held in a simple scalar variable, then
the { and } can be dropped:
$scalar $$sRef
@array @$aRef
$array[0] $$aRef[0]
$#array $#$aRef
%hash %$hRef
$hash{KEY} $$hRef{KEY}
@hash{@list} @$hRef{@list}
-
If you are getting a scalar from a hash or array, then you
can replace ${$ref} with $ref->:
$array[0] $aRef->[0]
$hash{KEY} $hRef->{KEY}
-
If the reference is in a hash or array, then you can drop
the -> between the adjacent [0]
and {KEY}:
${$aRef->[0]}[1] $aRef->[0]->[1] $aRef->[0][1]
${$aRef->[0]}{KEY} $aRef->[0]->{KEY} $aRef->[0]{KEY}
${$hRef->{KEY}}[1] $hRef->{KEY}->[1] $hRef->{KEY}[1]
${$hRef->{A}}{B} $hRef->{A}->{B} $hRef->{A}{B}
I hope that makes things much clearer.
-
tye
(but my friends call me "Tye")