No, no las entendido bien o nos hemos explicado mal...
Para que quede más claro: "referencia" == "puntero".
Entonces,
@refp = (\$fracs) hará que el
array @refp contenga
un valor: una referencia (puntero) a la variable
$fracs. Estamos, efectivamente, guardando un puntero a la variable
$fracs, dentro del a
rray @refp.
Para acceder a los elementos de un
array,
NO hay que usar la nomenclatura @refp[0], @refp[1].
En Perl, el primer carácter que antecede a una variable, indica el tipo de dato que queremos obtener de esa variable. Si vemos un '$' obtenemos un escalar, mientras que si vemos un '@', obtenemos una lista de valores.
Así, para obtener
UN valor de @refp, lo llamamos así:
$refp[0]. Si quisiéramos obtener
DOS (o más) valores de
@refp, lo escribiríamos así:
@refp[0,1,2].
$refp[0] contendrá la referencia a
$fracs. Para obtener el valor que contiene
$fracs lo podríamos escribir como
${ $refp[0] }. Estamos desreferenciando, y como ponemos un '$' delante, estamos indicando que queremos obtener un valor escalar.
Para ver el contenido de las variables, puedes usar el módulo Data::Dumper:
Using perl Syntax Highlighting
@refp = (\$fracs);
use Data
::Dumper;
print Dumper
\@refp;Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Actualización: enviado antes del último mensaje de alain_fyf.