I always forget about the POSIX stuff, of course I also wish Perl had a matrix operator so that I could say something like:
printf '%d,%02d,%02d', (1900,1,0) plus reverse +(localtime)[3..5];
Er... I guess really that's just a vector operator... I know there are modules to do that, but I think it should be part of the Perl core... otherwise what's the point? I could just as easily write it:
sub add_vectors
{
my @left = @{ shift };
my @right = @{ shift };
my @result = ();
my $index = $#left > $#right ? @left : @right;
while( --$index >= $[ )
{
$left[$index] = 0 if not defined $left[$index];
$right[$index] = 0 if not defined $right[$index];
$result[$index] = $left[$index] + $right[$index];
}
return \@result;
}
A sloppy first pass, but you get the idea. |