Arrays Perl,如何删除哈希数组中的哈希?
我有一个如下的散列数组Arrays Perl,如何删除哈希数组中的哈希?,arrays,perl,hash,Arrays,Perl,Hash,我有一个如下的散列数组 @students= ( { 'math' => 95, 'phy' => 90, 'che' => 85 }, { 'math' => 50, 'phy' => 70, 'che' => 35 } ); 我想根据一些条件删除整个散列,因为我尝试使用下面的代码,但得到一个错误,即delete参数不是散
@students= (
{
'math' => 95,
'phy' => 90,
'che' => 85
},
{
'math' => 50,
'phy' => 70,
'che' => 35
}
);
我想根据一些条件删除整个散列,因为我尝试使用下面的代码,但得到一个错误,即delete参数不是散列、数组元素或切片。所以请帮帮我,我该怎么办
for $i ( 0 .. $#students) {
for $key ( keys %{ $students[$i] } ) {
if ($key eq 'che') {
if ($students->{$key} == 35){
delete (%{$students[$i]});
}
}
}
}
删除非常适合哈希键,但在您的情况下,您希望删除数组元素,以便可以应用grep
筛选:
@students = grep { $_->{che} != 35 } @students;
是不是应该是$students[$i]->{$key}
?就像@Barmar说的,你要删除的是项目,而不是数组。实际上,我问的是if
行,而不是delete
@Barmar yep you r right.。一旦条件满足,我想删除整个散列。。