我正在尝试按 location_id 对 Perl 中的以下数据结构进行排序。
my $employees = $dbh->selectall_arrayref(qq[
SELECT name, type, code, emp_cat_id,
percentage, location_id
FROM table_1
],{ Slice => {} });
for my $row (@$employees) {
push @{
$args->{employees}{ $row->{emp_cat_id} }
}, $row;
}
例子:
123 => [
{
percentage => 0.25,
code => "XYZ",
name => "John Doe",
type => "pt",
location_id => 001,
emp_cat_id => 123
}
],
555 => [
{
percentage => 0.50,
code => "ZZZ"
name => "Chris Cringle",
type => "ft",
location_id => 007,
emp_cat_id => 555
},
{
percentage => 0.25,
code => "XXX"
name => "Tom Thompson",
type => "pt",
location_id => 002,
emp_cat_id => 555
}
]
对于每个 emp_cat_id,我需要该结构以 asc 顺序具有 location_ids。
我尝试了以下方法,但出现“在第 # 行的 void 上下文中无用的排序”或“在第 # 行的标量上下文中无用的排序”错误。
$args->{employees} = sort {
$a->{location_id} <=> $b->{location_id}
} $args->{employees};
感谢您对理解排序的任何帮助!