以下代码片段将命令的输出解析为哈希。然后,您可以随心所欲地进行操作。
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
my $re = qr/\((\d+)\) "(.+?)" (.*)\z/;
my $data;
while( <DATA> ) {
chomp;
my($event,$id,$date) = $_ =~ /$re/;
$data->{$event} = { id => $id, date => $date };
}
say Dumper($data);
say $data->{$_}{id} for sort { $a <=> $b } keys %{$data};
__DATA__
(154) "1.T" Oct 15, 2020 7:05 AM
(159) "1.S" Oct 14, 2020 7:03 AM
(161) "1.R" Oct 13, 2020 7:03 AM
(163) "1.Q" Oct 11, 2020 7:06 AM
(164) "1.P" Oct 10, 2020 7:06 AM
(166) "1.N" Oct 8, 2020 1:53 AM
(167) "1.K" Oct 5, 2020 7:06 AM
(168) "1.J" Oct 4, 2020 4:44 PM
(169) "1.I" Oct 3, 2020 3:54 PM
(170) "1.H" Oct 3, 2020 7:02 AM
输出
$VAR1 = {
'168' => {
'id' => '1.J',
'date' => 'Oct 4, 2020 4:44 PM'
},
'164' => {
'date' => 'Oct 10, 2020 7:06 AM',
'id' => '1.P'
},
'159' => {
'id' => '1.S',
'date' => 'Oct 14, 2020 7:03 AM'
},
'166' => {
'date' => 'Oct 8, 2020 1:53 AM',
'id' => '1.N'
},
'170' => {
'date' => 'Oct 3, 2020 7:02 AM',
'id' => '1.H'
},
'154' => {
'date' => 'Oct 15, 2020 7:05 AM',
'id' => '1.T'
},
'169' => {
'date' => 'Oct 3, 2020 3:54 PM',
'id' => '1.I'
},
'167' => {
'date' => 'Oct 5, 2020 7:06 AM',
'id' => '1.K'
},
'163' => {
'date' => 'Oct 11, 2020 7:06 AM',
'id' => '1.Q'
},
'161' => {
'date' => 'Oct 13, 2020 7:03 AM',
'id' => '1.R'
}
};
1.T
1.S
1.R
1.Q
1.P
1.N
1.K
1.J
1.I
1.H