2010-08-04 18 views
8

¿Hay alguna función disponible en Perl para comprobar el tipo de referencia:Cómo obtener el tipo de la referencia?

my $ref=\@array; 

que necesito para obtener el tipo de referencia como array por la función.

+2

posible duplicado de [¿Cómo puedo saber qué tipo de valor es una variable en Perl?] (Http://stackoverflow.com/questions/1731333/how-do-i-tell-what-type-of-value -is-in-a-perl-variable) Nota – Ether

Respuesta

22

Uso función ref:

$ref_type = ref $ref; 

El valor de retorno es el de: ESCALAR, ARRAY, HASH, CÓDIGO (referencia al subprograma), GLOB (referencia a typeglob) y REF (referencia a la referencia).

En realidad, ref función puede devolver más valores y en caso de referencia al objeto devuelve el nombre del paquete en lugar de escribir: http://perldoc.perl.org/functions/ref.html.

+7

la referencia ha sido bendecido, ref() devuelve el nombre del paquete, no el tipo de datos subyacente. En tales casos, puede considerar usar el tipo de ref y los métodos bendecidos de Scalar :: Util. – dwarring

+1

@snoopy Aunque, la mayoría de las veces es más útil conocer el nombre del paquete (clase) del objeto. Y no deberías estar jugando con el objeto interno de forma manual de todos modos. – slebetman

Cuestiones relacionadas