Vous voulez améliorer cette question ? Mettez à jour la question afin qu'elle soit sur le sujet pour Unix et Linux Stack Exchange.
Fermé il y a 2 ans.
Améliorer cette question
J'ai un 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"; };
};
Cela fonctionne ainsi :
That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message
Mais pourquoi? Il doit imprimer en ligne 1 That's BEGIN message
ou non ?
Réponse acceptée :
Le premier BEGIN
n'est pas exécuté tant qu'il n'est pas complètement défini (voir documentation). Cela n'arrive pas avant la fin du dernier }
.
Les autres sont exécutés lorsqu'ils sont complètement définis - plus tôt.