数组 – Perl,如何删除哈希数组中的哈希?

前端之家收集整理的这篇文章主要介绍了数组 – Perl,如何删除哈希数组中的哈希?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个哈希数组,如下所示.

@students= (
    {
        'math' => 95,'phy'  => 90,'che'  => 85
    },{
        'math' => 50,'phy'  => 70,'che'  => 35
    }
);

我想基于某些条件删除整个哈希,因为我尝试使用下面的代码但是我得到一个错误,说删除参数不是HASH或ARRAY元素或切片.所以请帮帮我,我该怎么办?

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;

猜你在找的Perl相关文章