如何在Perl中对日期进行排序?
my @dates = ( "02/11/2009","20/12/2001","21/11/2010" );
@H_
502_4@我的数组中有以上日期.我该如何排序这些日期?
@H_
502_4@我的日期格式是dd / mm / YYYY.
@dates = sort { join('',(split '/',$a)[2,1,0]) cmp join('',$b)[2,0]) } @dates;
@H_
502_4@或使用单独的排序子程序:
sub mysort {
join('',0]);
}
@dates = sort mysort @dates;
@H_
502_4@更新:一种更有效的
方法是Schwartzian变换:
@dates =
map $_->[0],sort { $a->[1] cmp $b->[1] }
map [ $_,join('',$_)[2,0]) ],@dates;