我有一个看起来像这样的变量:
do {
my $a = {
computers => [
{
report_date_epoch => 1591107993595,
serial_number => "C02YK1TAFVCF",
username => "fake1\@example.com",
},
{
report_date_epoch => 1626877069476,
serial_number => "C03XF8AWJG5H",
username => "fake2\@example.com",
},
...
Run Code Online (Sandbox Code Playgroud)
我想按纪元编号将其排序为一个没有computers数组的新变量。
已computer排序键的 arrayref 中的 hashref 列表
use warnings;
use strict;
use feature 'say';
use Data::Dump qw(dd);
my $v = {
computers => [
{
report_date_epoch => 1591107993595,
serial_number => "C02YK1TAFVCF",
username => "fake1\@example.com",
},
{
report_date_epoch => 1626877069476,
serial_number => "C03XF8AWJG5H",
username => "fake2\@example.com",
}
]
};
my @by_epoch =
sort { $a->{report_date_epoch} <=> $b->{report_date_epoch} }
@{$v->{computers}};
dd $_ for @by_epoch;
Run Code Online (Sandbox Code Playgroud)
我使用Data::Dump打印复杂的数据结构。(还有其他不错的。)
或使用核心(已安装)工具
use Data::Dumper;
...
say Dumper $_ for @by_epoch;
Run Code Online (Sandbox Code Playgroud)