in reply to Strange behaviour when returning the value of "do {}" - possible perl bug?
Output:my @testsubs; ## test 1 push @testsubs, sub { return do { 1; 1; } }; ## test 2 push @testsubs, sub { if (1) { return do { 1; } } }; ## test 3 push @testsubs, sub { if (1) { return do { 1; 1; } } }; ## test 4 push @testsubs, sub { if (1) { return scalar do { 1; 1; } } }; for (1..@testsubs) { print "test $_ ", $testsubs[$_-1]->()==1 ? 'passes' : 'fails', "\n"; }
test 1 passes test 2 passes test 3 fails test 4 passes
|
|---|