Vuoi migliorare questa domanda? Aggiorna la domanda in modo che sia in argomento per Unix e Linux Stack Exchange.
Chiuso 2 anni fa.
Migliora questa domanda
Ho uno script 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"; };
};
Funziona così:
That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message
Ma perché? Deve essere stampato nella riga 1 That's BEGIN message
o no?
Risposta accettata:
Il primo BEGIN
non viene eseguito finché non è completamente definito (vedi documentazione). Ciò non accade fino alla fine dell'ultimo }
.
Gli altri vengono eseguiti quando sono completamente definiti, prima.