Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie für Unix &Linux Stack Exchange relevant ist.
Vor 2 Jahren geschlossen.
Verbessern Sie diese Frage
Ich habe ein Perl-Skript:
#!/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"; };
};
Es funktioniert so:
That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message
Aber warum? Es muss in Zeile 1 That's BEGIN message
ausgeben oder nein?
Akzeptierte Antwort:
Der erste BEGIN
wird nicht ausgeführt, bis es vollständig ist definiert (siehe Dokumentation). Das passiert erst am Ende des letzten }
.
Die anderen werden so ausgeführt, wie sie vollständig definiert sind – früher.