Факториал натурального числа

#!/usr/bin/perl
 
$m = 8;
print "\n test m= $m,  m!=".fakt($m);
 
sub fakt
{
  my($n) = $_[0];
  if($n<0) {die "argument can't be negative!"};
# необходимо добавить проверку на нецелые и нечисловые аргументы 
  unless($n) {return(1)}
  else {return( $n*fakt($n-1) )};
}