sub foo { (my $foo, state $bar) = (f(), g()); ... } foo; foo; # Should g() be called? #### state %record; %record = ( ... ); #### my %record = ( ... ); #### state %record; %record = ( ... ) unless keys %record;
## state %record; %record = ( ... ); ##
## my %record = ( ... ); ##
## state %record; %record = ( ... ) unless keys %record;