in reply to How to sort an array

The naive way...
@Data = sort by_projname @Data; sub by_projname { return (split /\|/, $a)[1] cmp (split /\|/, $b)[1]; }
And similarly for the other columns. But you may like to consider a Schwartzian Transform as it might be more efficient.
@Data = map { $_->[0] } sort { $_->[1] cmp $_->[1] } map { $_, [ (split /\|/)[1] ] } @Data;
(that's for sorting by projname - change the index in the bottom map for other columns)
--
<http://www.dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg