# subroutine to calculate factorial # using a recursive algorithm # argument: a number (N) # return: factorial (N!) sub factorial { my $number = shift @_; return undef if $number < 0; # illegal value return 1 if $number == 0; return( $number * factorial($number -1) ); }