#!/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) )};
}