Using perl Syntax Highlighting
sub foo { return; }
sub bar {
my ($a, $b, $c) = @_;
return if !defined $b;
die if !defined $c;
}
bar(1, foo(), 3); # explodes
sub bar {
my ($a, $b, $c) = @_;
return if !defined $b;
die if !defined $c;
}
bar(1, foo(), 3); # explodes
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
De esa manera, en contexto lista, devolvería una lista vacía mientras que en contexto escalar devolvería un valor undef.
Pero en el ejemplo mostrado, foo() devuelve el return y es evaluado en contexto lista, por estar en mitad de los argumentos que se le pasan a bar(). La pregunta es: ¿por qué desaparece ese valor de la lista de argumentos? Sabemos que desaparece porque bar() explota en el die, queriendo decir que el argumento $c no ha sido definido (ha saltado una posición).
¿En qué parte de la documentación se menciona este efecto?