我在看另一个问题时注意到了这一点......
如果我有这样的脚本:
while (<>) {
print if 5 .. undef;
}
它跳过第 1..4 行,然后打印文件的其余部分。但是,如果我尝试这个:
my $start_line = 5;
while (<>) {
print if $start_line .. undef;
}
它从第 1 行打印。谁能解释为什么?
实际上我什至不确定为什么第一个有效。
嗯,进一步研究我发现这有效:
my $start = 5;
while (<>) {
print if $. == $start .. undef;
}
所以第一个版本神奇地使用$.
了行号。但我不知道为什么它会因变量而失败。