in reply to Sub routines not playing fair
Yes, the code would help. For example, if it's this, then we can explain ;-)
sub foo { sub BEGIN { print "BEGIN\n"; } sub INIT { print "INIT\n"; } sub END { print "END\n"; } } [download]