Es muy común ver que la primera línea de una función es:
my ($var1, $var2, $var3) = @_;o
my $var1 = shift; my $var2 = shift; my $var3 = shift;Esta sintaxis es completamente correcta, sin embargo, si asumimos que la función fue llamada correctamente podemos terminar con parámetros con valor indefinido o ignorando argumentos. Es muy recomendable revisar cada uno de los parámetros que recibimos, buscando valores indefinidos, tipos de datos incorrectos (p.ej., texto cuando estamos esperando números, o un valor escalar cuando esperamos una referencia como veremos en