Mega Code Archive

 
Categories / Perl / Subroutine
 

Factorial with recursive function

#!/usr/bin/perl use warnings; use strict; sub fibonaccil {     my ($count, $aref) = @_;     unless ($aref) {         # first call - initialize         $aref = [1,1];         $count -= scalar(@{$aref});     }     if ($count--) {         my $next = $aref->[-1] + $aref->[-2];         push @{$aref}, $next;         return fibonaccil($count, $aref);     } else {         return wantarray?@{$aref}: $aref->[-1];     } } print scalar(fibonaccil(10)), "\n"; print scalar(fibonaccil(10, [2, 4])), "\n"; my @sequence = fibonaccil(10); print "Sequence: @sequence \n"; sub fibonacci2 {     my ($count, $internal) = @_;     if ($count <= 2) {         return $internal ? [1,1] : 1;     } else {         my $result = fibonacci2($count -1, 'internal');          my $next = $result->[-1] + $result->[-2];         if ($internal) {             push @{$result}, $next;             return $result;         } else {             return $next;         }     } } foreach (1..20) {     print "Element $_ is ", fibonacci2($_), "\n"; }