gpt4 book ai didi

perl - 如何使用 Perl 按月对 dd/mm/yyyy 格式的日期进行排序?

转载 作者:行者123 更新时间:2023-12-02 05:22:01 25 4
gpt4 key购买 nike

我有一个 dd/mm/yyyy 日期列表存储在一个散列中,我需要按日期按月顺序打印出来。这是相关的摘录。

use feature 'say';

for my $date (sort {$a cmp $b} keys %data) {
say $date;
}

这个输出:

16/07/2008
16/08/2008
16/09/2008
17/07/2008
17/08/2008
17/09/2008, etc.

当我需要的是:

16/07/2008
17/07/2008
16/08/2008
17/08/2008
16/09/2008
16/09/2008, etc.

我怎样才能做到这一点?

最佳答案

您可以使用 Schwartzian Transform 来做到这一点,像这样:

for my $date( map  { $_->[0] }
sort { $a->[1] <=> $b->[1] }
map { [ $_, (split /\//, $_)[1] ] }
keys %data ) {
...

这会获取 %data 的每个键并将其放入一个匿名数组中,其中第一个元素是键,第二个元素是 / 拆分的中间字段。然后它按数组的第二个元素排序,并使用另一个 map 获取原始键列表。

关于perl - 如何使用 Perl 按月对 dd/mm/yyyy 格式的日期进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1187142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com