为什么我的脚本仅访问数组中的第一个元素?

CG3

下面是我的脚本。我已经尝试了许多打印语句来弄清楚为什么它仅访问第一个数组元素。模式匹配有效。该数组至少包含40个元素。我已经检查了,已经满了。我已经打印了每一行,并且打印了每一行。

my $index = 0;
open(FILE, "$file") or die "\nNot opening $file for reading\n\n";
open(OUT, ">$final") or die "Did not open $final\n";
while (<FILE>) {
    foreach my $barcode (@barcode) {
        my @line = <FILE>;
        foreach $_ (@line) {
            if ($_ =~ /Barcode([0-9]*)\t$barcode[$index]\t$otherarray[$index]/) {
                my $bar = $1;
                $_ =~ s/.*//;

                print OUT ">Barcode$bar"."_"."$barcode[$index]\t$otherarray[$index]";
            }
            print OUT $_;
        }
        $index++;
    }
}

好的,可以说输入是:

File:
Barcode001    001    abc
Barcode002    002    def
Barcode003    003    ghi

@barcode holds:

001
002
003

@otherarray holds:

abc
def
ghi

该脚本的输出结果当前仅打印:

条码001_001 abc

它应该在打印:

>Barcode001_001    abc
>Barcode002_002    def
>Barcode003_003    ghi

应打印约40行的整个负载。

有任何想法吗?我访问数组元素的方式一定有问题吗?还是递增?希望这不是太愚蠢!提前致谢。

它需要索引,因为我正在尝试按顺序并行匹配数组。每行都需要将数组的相应索引与文件中的每行匹配。

CG3

原来这是一个简单的问题,因为我怀疑是星期一。我有一位同事和我一起经历了它,这就是索引的位置:

#my $index = 0; #This means the index is iterated through, 
                #but for each barcode for one line, then it continues 
                #counting up and misses the other values, therefore 
                #repeatedly printing just the first element of the array.
open(FILE, "$file") or die "\nNot opening $file for reading\n\n";
open(OUT, ">$final") or die "Did not open $final\n";
while (<FILE>) {
    $index = 0; #New placement of $index for initialising.
    foreach my $barcode (@barcode) {
        my @line = <FILE>;
        foreach $_ (@line) {
            if ($_ =~ /Barcode([0-9]*)\t$barcode[$index]\t$otherarray[$index]/) {
                my $bar = $1;
                $_ =~ s/.*//;
            print OUT ">Barcode$bar"."_"."$barcode[$index]\t$otherarray[$index]";
            }
        print OUT $_;
        $index++; #Increment here
        }
    #$index++; 
    }
}

感谢每个人的回答,对于我本来的措辞不佳的问题,他们本来可以解决并且可能会更有效率,但是出于脚本和我编辑过的问题的目的,必须采用这种方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的脚本仅访问数组中的第一个元素?

来自分类Dev

为什么bash仅将第一个元素附加到数组

来自分类Dev

为什么我的shell脚本会截断输出中的第一个数字?

来自分类Dev

为什么数组中的第一个元素始终为0?

来自分类常见问题

为什么将\ 0定义为C中char数组的第一个元素?

来自分类Dev

为什么不在php中显示此数组的第一个元素?

来自分类Dev

LOOKUP为什么不匹配数组中的第一个元素?

来自分类Dev

SQL INSERT 为什么它只添加数组中的第一个元素?

来自分类Dev

为什么我在向量中得到第一个空元素?

来自分类Dev

为什么我的findMax方法给我数组的第一个元素而不是最大元素的结果?

来自分类Dev

为什么我的函数只返回数组中的第一个对象

来自分类Dev

为什么awk split()使第一个字段成为数组中的最后一个元素?

来自分类Dev

为什么我的 jQuery show() 函数在 php foreach 循环中仅适用于第一个元素

来自分类Dev

我的脚本仅执行到数据框Python上的第一个元素

来自分类Dev

为什么`zip`从第一个迭代器中又吃了一个元素?

来自分类Dev

如果lisp中的字符串是向量,为什么不能使用svref访问第一个元素?

来自分类Dev

Java多维数组-为什么仅定义第一个大小就足够了?

来自分类Dev

为什么列表函数仅输出数组的第一个值?

来自分类Dev

我的程序不会输出我输入要在数组中搜索的第一个值。为什么?

来自分类Dev

我正在尝试将数组值绑定到php pdo中的一个准备好的语句,但仅绑定的数组的第一个元素

来自分类Dev

为什么我的列表视图仅检测到第一个复选框?

来自分类Dev

为什么在Ruby中使用keep_if会跳过数组中的第一个元素?

来自分类Dev

为什么在Ruby中使用keep_if会跳过数组中的第一个元素?

来自分类Dev

为什么我只能以编程方式访问第一个加载的页面?

来自分类Dev

为什么我无法访问从Java的StringTokenizer返回的第一个令牌?

来自分类Dev

在Golang中解组XML数组:仅获取第一个元素

来自分类Dev

无法遍历javascript中的对象数组。仅输出第一个元素

来自分类Dev

搜索栏仅返回数据数组中的第一个元素

来自分类Dev

仅将第一个元素执行到数组中的问题

Related 相关文章

  1. 1

    为什么我的脚本仅访问数组中的第一个元素?

  2. 2

    为什么bash仅将第一个元素附加到数组

  3. 3

    为什么我的shell脚本会截断输出中的第一个数字?

  4. 4

    为什么数组中的第一个元素始终为0?

  5. 5

    为什么将\ 0定义为C中char数组的第一个元素?

  6. 6

    为什么不在php中显示此数组的第一个元素?

  7. 7

    LOOKUP为什么不匹配数组中的第一个元素?

  8. 8

    SQL INSERT 为什么它只添加数组中的第一个元素?

  9. 9

    为什么我在向量中得到第一个空元素?

  10. 10

    为什么我的findMax方法给我数组的第一个元素而不是最大元素的结果?

  11. 11

    为什么我的函数只返回数组中的第一个对象

  12. 12

    为什么awk split()使第一个字段成为数组中的最后一个元素?

  13. 13

    为什么我的 jQuery show() 函数在 php foreach 循环中仅适用于第一个元素

  14. 14

    我的脚本仅执行到数据框Python上的第一个元素

  15. 15

    为什么`zip`从第一个迭代器中又吃了一个元素?

  16. 16

    如果lisp中的字符串是向量,为什么不能使用svref访问第一个元素?

  17. 17

    Java多维数组-为什么仅定义第一个大小就足够了?

  18. 18

    为什么列表函数仅输出数组的第一个值?

  19. 19

    我的程序不会输出我输入要在数组中搜索的第一个值。为什么?

  20. 20

    我正在尝试将数组值绑定到php pdo中的一个准备好的语句,但仅绑定的数组的第一个元素

  21. 21

    为什么我的列表视图仅检测到第一个复选框?

  22. 22

    为什么在Ruby中使用keep_if会跳过数组中的第一个元素?

  23. 23

    为什么在Ruby中使用keep_if会跳过数组中的第一个元素?

  24. 24

    为什么我只能以编程方式访问第一个加载的页面?

  25. 25

    为什么我无法访问从Java的StringTokenizer返回的第一个令牌?

  26. 26

    在Golang中解组XML数组:仅获取第一个元素

  27. 27

    无法遍历javascript中的对象数组。仅输出第一个元素

  28. 28

    搜索栏仅返回数据数组中的第一个元素

  29. 29

    仅将第一个元素执行到数组中的问题

热门标签

归档