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;