in reply to Strange concatenation

Precedence is biting you. You are concatenating @{$_}[0..2] . " " etc, which is not what you intended. Aside from other problems, this evaluates the array slice in scalar context, for the last element, $_->[2], dropping the other two elements.

Solution: Parentheses. For example, to make the first join a function call instead of a list operator:

#!perl use strict; use warnings; my ($mdate,$mts) = @ARGV; my $recent = (map { join("-", @{$_}[0..2]) . " " . join ":", @{$_}[ +3..5] } sort { $a->[0] <=> $b->[0] || $a->[1] <=> $b->[1] || +$a->[2] <=> $b->[2] } map { [ split "[-: ]" ] } ($mdate,$mts))[0]; print $recent;

print "Just another Perl ${\(trickster and hacker)},"
The Sidhekin proves Sidhe did it!