There are lots of cases where the BEGIN fixes problems. mod_perl is one. Several others boil down to variations on this problem:
which produces:#!/usr/bin/perl -w use strict; print "Starts out false: ", boolToggle(), $/; print "Then is true: ", boolToggle(), $/; print "Then false: ", boolToggle(), $/; print "Then true: ", boolToggle(), $/; # BEGIN # Remove first "#" from this line to fix bug. { my $static= 1; sub boolToggle { $static= $static ? 0 : 1; return $static; } } print "Then opposite of last time: ", boolToggle(), $/;
Trying to topologically sort your subroutine declarations to avoid this problem is probably not a good solution. - tye (but my friends call me "Tye")Starts out false: 1 Then is true: 0 Then false: 1 Then true: 0 Then opposite of last time: 0
In reply to (tye)Re: A metaclosure? (use static vars)
by tye
in thread A metaclosure? Howto?
by PetaMem
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |