diff --git a/articles/perl.md b/articles/perl.md index b2be4cf..f61c7b0 100644 --- a/articles/perl.md +++ b/articles/perl.md @@ -59,6 +59,28 @@ print "Hello, World!\n"; say "Hello, World!"; ``` +### Factorial +```perl +use warnings; +use strict; +use bignum; # optional + +sub fact { + my $n = shift; + my $res = 1; + while ($n > 0) { + $res *= $n; + --$n; + } + return $res; +} + +my @ns = (5, 0, 39, 1, 4, 10); +foreach my $n (@ns) { + printf "fact(%d) = %s\n", $n, fact($n); +} +``` + ### As a replacement for `sed` It is possible to use Perl as `sed` to benefit from its more powerful regex: ```sh