我试图从数组中删除值我尝试了以下所有3种方法,但前后的dumper输出保持不变。
@array:
$VAR1 = [
[
'LINK-IF-A/1/1/1<->IF-B/1/1/1',
'LINK-IF-C/1/1/1<->IF-D/1/1/1',
'LINK-IF-E/1<->IF-F/2'
]
];
$ value = LINK-IF-C / 1/1/1&lt; - &gt; IF-D / 1/1/1
Method1 :
my @remove = grep { $_ != "$value" } @array;
Method2 :
my @remove = grep { grep {!/$value/ } @$_ } @array;
Method3 :
my @remove = grep(!/"$value"/, @array);
DEBUG(自卸车\ @Remove)); - &GT;与输入相同的输出...无删除
谢谢,
答案 0 :(得分:1)
for my $inner (@array) {
@$inner = grep { $_ eq $value } @$inner;
}
抱歉,没有时间解释。
答案 1 :(得分:0)
一种方法是遍历数组并grep每个内部数组:
my @remove = map { [ grep { !/$value/ } @$_ ] } @array;
如果外部数组实际上只是一个元素的数组,则可以避免使用map
并将数组从堆栈中弹出:
my @remove = [ grep { !/$value/ } @{$array[0]} ];