我想对 arrayref %results (时间字符串,从旧到新)进行排序,它有多个键,但我只发布了一个键来显示它的外观:
'Ende Monatswechsel P-Konten' => [
'17.02.2018 05:17:39',
'14.02.2018 04:28:11',
'23.02.2018 03:17:17',
'22.02.2018 03:39:20',
]
我期待:
'Ende Monatswechsel P-Konten' => [
'14.02.2018 04:28:11',
'17.02.2018 05:17:39',
'22.02.2018 03:39:20',
'23.02.2018 03:17:17',
]
有谁知道该怎么做?我试过了:
my $columns = map [ $_, sort{$a <=> $b} @{ $results{$_} } ], keys %results;
但它不起作用。提前致谢。
我的代码如下所示:
while(my $line=<F>) {
#- Info: 19.02.2018 00:01:01 --- Start Tageswechsel-CoBa ---
#- Info: 27.11.2018 04:16:42 --- Ende Tageswechsel-CoBa ---
if ($line=~ /(\d\d\.\d\d\.\d\d\d\d \d\d:\d\d:\d\d) --- (.+? Tageswechsel-CoBa) -.*\s*$/)
{
($timestamp, $action) = ($1,$2);
}
if ( !defined $filter{$action}{$timestamp} ) {
push @{$results{$action}}, $timestamp;
$filter{$action}{$timestamp} = 1;
}
}
print Dumper(\%results)
输出:
'Start Tageswechsel-CoBa' => [
'17.02.2018 05:12:13',
'20.02.2018 04:23:16',
'22.02.2018 03:12:46',
'23.02.2018 03:34:28',
'27.02.2018 03:41:25',
'02.03.2018 03:32:26',
],
'Ende Tageswechsel-CoBa' => [
'17.02.2018 05:20:01',
'19.02.2018 06:01:02',
'20.02.2018 04:29:44',
'22.02.2018 03:19:04',
'23.02.2018 03:40:52',
'26.02.2018 06:01:26',
]
};