gpt4 book ai didi

perl - 删除数组的 Perl 散列中的空字符串

转载 作者:行者123 更新时间:2023-12-01 13:23:27 29 4
gpt4 key购买 nike

我有一个具有这种结构的散列

{
a => ['1', '2', '', '5', '6', '7', '8'],
b => ['1', '2', '3', '6', '7', '8', '9'],
c => ['2', '', '4', '', '', '8', ''],
}

我需要这样的

{
c => ['2', '4', '8'],
a => ['1', '2', '5', '6', '7', '8'],
b => ['1', '2', '3', '6', '7', '8', '9']
}

如何删除 '' 值?

最佳答案

您可以直接更改 values 返回的数组引用列表,如 perldoc 中所述.

use warnings;
my %h = (
'c' => ['2','','4','','','8',''],
'a' => ['1','2','','5','6','7','8'],
'b' => ['1','2','3','6','7','8','9']
);

@$_ = grep defined && length, @$_ for values %h;

并且在不应过滤掉 undef 值的情况下,

@$_ = grep !defined || length, @$_ for values %h;

关于perl - 删除数组的 Perl 散列中的空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22722004/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com