anbutechie has asked for the wisdom of the Perl Monks concerning the following question:

print "Now in the main script line 1\n"; CHECK { print "1st declared CHECK block\n" } CHECK { print "2nd declared CHECK block\n" } END { print "1st declared END block\n" } BEGIN { print "1st declared BEGIN block\n" } print "Now in the main script line 2\n"; INIT { print "1st declared INIT block\n" } BEGIN { print "2nd declared BEGIN block\n" } END { print "2nd declared END block\n" } INIT { print "2nd declared INIT block\n" }
Output
1st declared BEGIN block
2nd declared BEGIN block
2nd declared CHECK block
1st declared CHECK block
1st declared INIT block
2nd declared INIT block
Now in the main script line 1
2nd declared END block
1st declared END block


Why is the statement print "Now in the main script line 2" not executed.
When shall the statement print "Now in the main script line 2" execute?
Regards,
Anbarasu

Replies are listed 'Best First'.
Re: Special block?
by ikegami (Patriarch) on Mar 11, 2009 at 07:05 UTC
    I get the following, as expected.
    1st declared BEGIN block 2nd declared BEGIN block 2nd declared CHECK block 1st declared CHECK block 1st declared INIT block 2nd declared INIT block Now in the main script line 1 Now in the main script line 2 2nd declared END block 1st declared END block

    Your perl is very broken if the code you posted produces the output you posted.

Re: Special block?
by lakshmananindia (Chaplain) on Mar 11, 2009 at 07:04 UTC

    It prints for me

    1st declared BEGIN block 2nd declared BEGIN block 2nd declared CHECK block 1st declared CHECK block 1st declared INIT block 2nd declared INIT block Now in the main script line 1 Now in the main script line 2 2nd declared END block 1st declared END block
    --Lakshmanan G.

    Your Attempt May Fail, But Never Fail To Make An Attempt