my $sub; $sub = sub { my $num = shift; if (0 == $num) { return 1; } else { return $num * $sub->($num - 1); } }; print $sub->(5), "\n"; print $sub->(6), "\n";