foreach(< $ IN>)是否会破坏文件?

时间:2017-10-13 18:04:13

标签: perl foreach io

回顾一些最近的问题,我看到了以下尴尬的构造:

open my $IN, "<", 'file' or die "can't read from 'file'. $!";
foreach my $line (<$IN>) {
    ...
}

(我熟悉的成语是while (my $line = <$IN>) {...}。)

我的问题是,foreach成语是否强制<>进入列表上下文,因此要求解释器篡改整个文件?

1 个答案:

答案 0 :(得分:3)

foreach循环的列表表达式在列表上下文中计算。有一些优化(例如for ($x..$y)for (@a)使用“无”内存),但for (readline($FH))未优化。