为什么在while条件退出之前循环内部?

时间:2011-03-24 21:50:54

标签: perl loops for-loop nested while-loop

我正在读取一个文件并执行一个while循环来迭代地遍历文件中的每一行。在while循环中我有一个if条件,它有一个嵌套的for循环,可以完成一些进程。尽管保持while循环运行的条件仍然有效,但是一旦for循环结束,代码就会退出。

my $datafile = "data.txt";
open my $fh, "<", $datafile or die "Failed to open $datafile ($!)";

my $csv = Text::CSV->new() or die "Failed to create Text::CSV object";
my $line = <$fh>;

while ($line = <$fh>)
{ 
    blah blah
    blah blah

    if ($foo > $cow) {
        blah
    } elsif ($foo == $cow) { 
        blah
    } else {
        for ($i =1; $i <= $something; $i++) {
            blah blah
        }
    }
}

问题是代码没有完成遍历data.txt文件的每一行。一旦完成for循环,代码就会退出。

非常感谢任何见解。谢谢。

1 个答案:

答案 0 :(得分:0)

我建议您使用调试器来查看发生的情况。 perldoc perldebug