en Perl 5.8.5, si hago lo siguiente, no me sale un error:¿Por qué un valor undef se convierte en una referencia de matriz válida en Perl?
use strict;
my $a = undef;
foreach my $el (@$a) {
...whatever
}
¿Qué está pasando aquí? Al imprimir la salida de ref($a)
, se muestra que $a
cambia para convertirse en una referencia de matriz válida en algún momento. Pero nunca configuré explícitamente $a
a nada.
Parece un poco extraño que el contenido de una variable pueda cambiar sin que yo haga nada.
Pensamientos, ¿alguien?
EDITAR: Sí, sé todo sobre la auto-vivificación. Siempre pensé que tenía que haber una tarea en algún punto del camino para activarla, no solo una referencia.
Esto es perl. La rareza está bien, porque es extraña. –
No creo que sea extraño, solo una conveniencia para guardar algunas declaraciones. –
@Stefano: ¿por qué molestarse en consultar las preguntas de Perl solo para troll? Es tedioso ... – Telemachus