http://qs321.pair.com?node_id=658021


in reply to Re^2: Bring Out Your New Perl Code
in thread Bring Out Your New Perl Code

Actually you should compare using a bare block (no BEGIN) which is the standard (older) way to have "state" variables.

I like 'state' but the old way is still useful if you need a pair of cooperating subs (or more):

% steph@ape (/home/stephan) % % cat state_old.px #!/usr/bin/perl+ { my $var = 10; sub next1 { ++$var; } sub next1_odd { if ($var % 2 == 0) { ++$var; } else { ++$var; ++$var; } } } $\ = qq{\n}; print next1() for 1..5; print next1_odd(); % steph@ape(/home/stephan) % % perl+ -w state_old.px 11 12 13 14 15 17
cheers --stephan