为什么在使用嵌套for循环运行代码时似乎没有任何事情发生?

时间:2014-10-09 15:01:57

标签: perl

我正在尝试使用for循环进行计算,然后将结果推送到数组中。这是我尝试使用的脚本部分:

my @deltaX;

for my $one (@protx) {
    for my $two (@lipidx) {
        my $deltadX = $one - $two;
        push @deltaX, $deltadX;
    }
}
print "@deltaX \n";

当我这样做时,似乎没有任何事情发生,我的电脑说perl正在运行,但没有输出或警告。

另一方面,当我在for循环中打印数组内容时,它似乎可以工作:

my @deltaX;

for my $one (@protx) {
    for my $two (@lipidx) {
        my $deltadX = $one - $two;
        push @deltaX, $deltadX;
        print "@deltaX \n"; 
    }
}

print超出外部循环时,如何才能使这项工作?

1 个答案:

答案 0 :(得分:0)

为了向您保证您的代码正在运行并且实际上正在执行某些操作,您可以打印一些进度点。每次将10,000个项目推送到数组时,此示例都会打印一个点,并且每100个点启动一个换行符。

my @deltaX;

for my $one (@protx) {
    for my $two (@lipidx) {
        my $deltadX = $one - $two;
        push @deltaX, $deltadX;

        print '.' unless @deltaX % 10_000;
        print "\n" unless @deltaX % 1_000_000;
    }
}
print "@deltaX \n";