Subroutine Perl

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 );
   }
}