my @fib = ( 0, 1 ); sub fib { my $n = shift; return ( $fib[ $n - 1 ] ||= fib($n - 1) ) + ( $fib[ $n - 2 ] ||= fib($n - 2) ); }