¿Quieres mejorar esta pregunta? Actualice la pregunta para que esté relacionada con el tema de Unix y Linux Stack Exchange.
Cerrado hace 2 años.
Mejorar esta pregunta
Tengo un script de Perl:
#!/usr/bin/perl
BEGIN {
print "That's BEGIN message\n";
BEGIN { print "That's BEGIN-2 message\n"; };
END { print "That's END message\n"; };
BEGIN { print "That's BEGIN-3 message\n"; };
};
Funciona así:
That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message
¿Pero por qué? Debe imprimirse en la línea 1 That's BEGIN message
o no?
Respuesta aceptada:
El primer BEGIN
no se ejecuta hasta que esté completamente definido (ver documentación). Eso no sucede hasta el final del último }
.
Los otros se ejecutan ya que están completamente definidos, antes.