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) |