use constant TEST_NOCACHE => $ENV{TEST_NOCACHE}; sub foo ($) { my $arg = shift; state %cache; return $cache{$arg} if !TEST_NOCACHE && exists $cache{$arg}; my $result = ... something costly ...; $cache{$arg} = $result; }