##
sub fibonacci {
die "..." unless defined $_[0];
my $n = shift;
die "..." unless is_a_number($n); # the is_a_number function is to be defined
die "..." if $n < 0;
die "..." if $n != int $n;
# ...
}
##
##
sub fibonacci (PositiveInt $n) {
return 1 if $n <= 1;
return fibonacci($n-1) + fibonacci($n-2);
}