Arrays Perl:过滤AoH输出
我正在尝试对我的AoH进行排序,如下所示:Arrays Perl:过滤AoH输出,arrays,perl,hash,output,Arrays,Perl,Hash,Output,我正在尝试对我的AoH进行排序,如下所示: $VAR1 = [ { 'Name' => 'John', 'Lastname' => 'Derp', 'Organization' => 'Finance', 'OfficeNR' => '23', 'ID' => '145'
$VAR1 = [
{
'Name' => 'John',
'Lastname' => 'Derp',
'Organization' => 'Finance',
'OfficeNR' => '23',
'ID' => '145'
},
{
'Name' => 'Kate',
'Lastname' => 'Herp',
'Organization' => 'HR',
'OfficeNR' => '78',
'ID' => '35'
},
{
'Name' => 'Jack',
'Lastname' => 'Serp',
'Organization' => 'Finance',
'OfficeNR' => '23',
'ID' => '98'
}
];
我试图做的是使用AoH的键过滤我的输出,例如,只打印那些拥有“组织”=>“财务”
的人
我已尝试使用新阵列解决此问题:
my @SortedAoH = sort { {Organization=>{'Finance'}} } @AoH;
但是它不起作用。你想要的是
grep
,而不是排序
。您也错误地理解了等价性检查的基本语法
无论如何,过滤器是:
my @finance_orgs = grep { $_->{'Organization'} eq 'Finance' } @AoH;
@finance\u orgs
变量现在只包括组织
设置为财务
的组织
只是对这些作品的解释:
变量是在块中隐含值时分配的变量,例如在$
或grep
中,或在map
循环中,没有明确命名的变量for
在哈希遍历数组中的每个条目时,对其执行哈希查找$\->{'Organization'}
是用于测试字符串等价性的运算符(与测试数字等价性的eq
相反)=
- 您想要的是
grep
,而不是排序
。您也错误地理解了等价性检查的基本语法
无论如何,过滤器是:
my @finance_orgs = grep { $_->{'Organization'} eq 'Finance' } @AoH;
@finance\u orgs
变量现在只包括组织
设置为财务
的组织
只是对这些作品的解释:
变量是在块中隐含值时分配的变量,例如在$
或grep
中,或在map
循环中,没有明确命名的变量for
在哈希遍历数组中的每个条目时,对其执行哈希查找$\->{'Organization'}
是用于测试字符串等价性的运算符(与测试数字等价性的eq
相反)=