Recursive factorial subroutine
foreach ( 0 .. 10 ) { print "$_! = " . factorial( $_ ) . "\n"; } sub factorial { my $number = shift; # get the argument if ( $number <= 1 ) { # base case return 1; } else { # recursive step return $number * factorial( $number - 1 ); } }