{ my %cache; sub calculate_stuff { my ($data) = @_; return $cache{$data} if exists $cache{$data}; # cache hit # calc return $cache{$data} = $result; }