Very nice. A couple of notes:
- unshift into your past days so you don't have to reverse printing them
- Lingua::EN::Number::Ordinate takes care of that yucky hardcoded list of day names
Here's my shortened version
#!/usr/bin/perl
use warnings;
use strict;
use Lingua::EN::Numbers::Ordinate;
my @past_gifts;
my $day = 0;
for my $todays_gift ( <DATA> ) {
chomp $todays_gift;
my $dayword = ordinate(++$day);
print join( "\n",
"On the $dayword of Christmas",
"My true Perl gave to me",
$todays_gift,
@past_gifts,
("") x 2,
);
unshift( @past_gifts, @past_gifts ? $todays_gift : "And $todays_gi
+ft" );
}
__DATA__
a commandline in an @ARGV
2 sca-lars
3 ar-rays
4 nested hash
5 ENCODED STRINGS
6 threads-a-spawning
7 procs-a-forking
8 tests succeeding
9 modules loading
10 objects blessing
11 signals catching
12 saints-a-drinking
|