Al usar referencias en una función es importante revisar que sean efectivamente referencias, y que se refieran al tipo de datos indicado. Invariablemente es preferible regresar de la función con un error y permitir que el programa o la función que invocó maneje un error a que se genere un error en tiempo de ejecución que lleve a abortar el programa, o peor aún, manejar datos erróneos.
Para detectar a tiempo estos errores, podemos recurrir a la función ref dela siguiente manera:
$var | ref($var) |
\\\$algo | 'REF' |
\$datos | 'SCALAR' |
\@arr o [1, 2, 3] | 'ARRAY' |
\%hash | 'HASH' |
\&cosa | 'CODE' |
\*otro | 'GLOB' |
$no_ref | '' (cadena vac'ia, no undef) |