$ra = \$a; # referencia a escalar $rb = \@b; # referencia a arreglo $rc = \%c; # referencia a hash $rx = \$rb; # referencia a referencia $rf = \&f; # referencia a función ref ( $ra ); # devuelve "SCALAR" ref ( $rb ); # devuelve "ARRAY" ref ( $rc ); # devuelve "HASH" ref ( $rx ); # devuelve "REF" ref ( $rf ); # devuelve "CODE"si el operando de
ref
no es una referencia, ref
devuelve undef
.
La función ref
puede ser utilizada para mejorar los mensajes de error:
die "Expected scalar reference" unless ref($slr_ref) eq "SCALAR";
Si una referencia es utilizada en un contexto
donde se espera una cadena, la función ref
es llamada automáticamente produciendo una representación hexadecimal
de la dirección del referente. Eso significa que una impresión como:
print $hsh_ref,"\n";produce algo como esto:
HASH(0X10027588)