diff --git a/03_recursion/perl5/01_countdown.pl b/03_recursion/perl5/01_countdown.pl new file mode 100644 index 0000000..ea3201f --- /dev/null +++ b/03_recursion/perl5/01_countdown.pl @@ -0,0 +1,15 @@ +sub countdown { + + my $i = shift; + + print "$i\n"; + + # base case: + return if $i <= 1; + + # recursive case + countdown( $i - 1 ); + +} + +countdown(5); diff --git a/03_recursion/perl5/02_greet.pl b/03_recursion/perl5/02_greet.pl new file mode 100644 index 0000000..023b9e1 --- /dev/null +++ b/03_recursion/perl5/02_greet.pl @@ -0,0 +1,23 @@ +sub greet2 { + + my $name = shift; + + print "how are you, $name ?\n"; +} + +sub bye { print "ok bye !\n"; } + +sub greet { + + my $name = shift; + + print "hello, $name !\n"; + + greet2($name); + + print "getting ready to say bye...\n"; + + bye(); +} + +greet('adit'); diff --git a/03_recursion/perl5/03_factorial.pl b/03_recursion/perl5/03_factorial.pl new file mode 100644 index 0000000..fa76bcb --- /dev/null +++ b/03_recursion/perl5/03_factorial.pl @@ -0,0 +1,13 @@ +sub fact { + + my $x = shift; + + if ( $x == 1 ) { + return 1; + } + else { + return $x * fact( $x - 1 ); + } +} + +print fact(5), "\n";