Puede compararlo con 'HASH' ahora, porque eso es lo que vuelve ahora.
Pero puede que no siempre.
Un buen ejemplo es el cambio que hicieron a una expresión regular compilada. En los viejos Perls el tipo era un ESCALAR. Sin embargo, desde 5.12 (creo) ahora es su propio tipo, REGEXP. Ejemplo:
perl -MScalar::Util=reftype -e "print reftype qr//"
en 5.8 da SCALAR
, pero lo mismo en 5.12 da REGEXP
.
Se puede ver otra aplicación de esto desde this question pregunté hace un tiempo, excepto que no se utiliza en lugar de ref
reftype
. El principio es el mismo sin embargo.
Simplemente, al compararlo con reftype {}
, están garantizando que es exactamente ahora y en el futuro sin (y creo que esta es la característica principal) la codificación de otra cadena en su programa.
¿Lo preguntas porque acabas de verme hacer en ypath? –
Este también es un ítem en _Programación efectiva de Perl_, y estoy seguro de que lo he explicado en algún lugar de Stackoverflow, pero usando ref() creo. reftype() devuelve el tipo de base incluso si está bendecido. –
@brian, sus habilidades de detective han tenido éxito una vez más. – friedo