Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Perl,如何删除哈希数组中的哈希?_Arrays_Perl_Hash - Fatal编程技术网

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.。一旦条件满足,我想删除整个散列。。