BEGIN {…}; em Perl [fechado]

4

Eu tenho um 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"; };
};

Funciona assim:

That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message

Mas por quê? Deve imprimir na linha 1 That's BEGIN message ou não?

    
por 1st Sentinel 31 Year Perl Hist 08.09.2018 / 23:33

1 resposta

10

O primeiro BEGIN não é executado até que esteja completamente definido (veja documentação ). Isso não acontece até o final do último } .

Os outros são executados quando estão completamente definidos - antes.

    
por 08.09.2018 / 23:41

Tags