#!/usr/bin/perl -w use strict; my $result = factorial_recursive(5); print "factorial_recursive(5) returns $result\n"; $result = factorial_iterative(5); print "factorial_iterative(5) returns $result\n"; sub factorial_recursive() { my $n = shift; if ($n == 1) { return(1); } else { return($n * &factorial_recursive(($n - 1))); } } sub factorial_iterative() { my $n = shift; return(fi_helper(1, 1, $n)); } sub fi_helper() { my ($product, $counter, $max_count) = @_; if ($counter > $max_count) { return($product); } else { return(fi_helper(($counter * $product), ($counter + 1), $max_count)); } }