我想从数组中查找并删除记录。我使用的是option1,但它没有用。 array1值中的值类似于
abc::record1
def:record2
ghf::record3
poi::record4
和需要比较的值就像是变量项中的record1,record2,record3。
选项1:
my @found = grep( /^$item$/, @array1 );
if (@found){
@array = eval { grep(!/$item/, @array1); };
@array1 = @array;
}
我可以尝试使用选项2,这会查找完全匹配或字符串/行中的任何值吗?
选项2
@array = grep { $_ ne $item } @array1;
@array1 = @array;
由于
答案 0 :(得分:0)
只需取消拼接即可删除数组元素,语法为
splice @array,$ first_index [,$ number_of_replaced_element] [,@ value]
e.g:
my @array = (1,2,3,4,5,6);
# delete the third element
splice @array, 2, 1;
# replace the third element by 1
splice @array, 2, 1, 1;
# delete each element after thz second
splice @array, 2;
答案 1 :(得分:0)
只要我理解你的问题,我会建议选项3:
foreach (@array1){
if ($item == $_) { < - This is the current element of the array
Do What you want
}
}