arrays - Perl:一次从多个数组中进行grep

标签 arrays perl blank-line

我有多个数组 (~32)。我想从中删除所有空白元素。如何在短时间内完成(可能通过一个 foreach 循环或 1-2 条命令行)?

我尝试了下面的方法,但它不起作用:

    my @refreshArrayList=("@list1", "@list2", "@list3","@list4", "@list5", "@list6" , "@list7");
    foreach my $i (@refreshArrayList) {
        $i = grep (!/^\s*$/, $i);
    }

比方说,@list1 = ("abc","def","","ghi"); @list2 = ("qwe","","rty","uy", "iop"),其他数组也类似。现在,我想从所有数组中删除所有空白元素。

所需的输出应为:@list1 = ("abc","def","ghi"); @list2 = ("qwe","rty","uy", "iop") ### 从所有数组中移除所有空白元素。

如何实现?

最佳答案

您可以创建一个列表引用列表,然后迭代这些列表,例如

for my $list (\@list1, \@list2, \@list3) {
     @$list = grep (!/^\s*$/, @$list);
}

当然,您也可以动态创建此列表引用列表,即

my @list_of_lists;
push @list_of_lists, \@list1;
push @list_of_lists, \@list2;
...
for my $list (@list_of_lists) {
     @$list = grep (!/^\s*$/, @$list);
}

关于arrays - Perl:一次从多个数组中进行grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72907260/

相关文章:

c++ - Arduino 的 3D 阵列

php - 合并多个数组的行数据

excel - 即使单元格为空,使用 VBA 创建的 CSV 文件末尾也有空白行

javascript - 如何在 "MadLibs"风格的文字游戏的 JavaScript 代码片段中编写非文字字符?

C++ 忽略空的第一行

java - 如何使用 jni 在 c 中替换 java 中的字符串数组的值?

c++ - 如何在排序时保持数组的位置相同?

arrays - Perl - 将变量分配给引用的值

windows - 在 Windows 上创建桌面链接的脚本?

html - 动态创建图表/布局