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