sub fibonacci { my $fib = shift; return $fib if ! $fib || $fib == 1; my ($low, $high) = (1, 0); my $iterate = sub { ($low, $high) = ($high, $low + $high); return $high; }; $iterate->() for 1 .. $fib; return $high; } print fibonacci(0), $/;