別の質問を見ていて気づきました...
次のようなスクリプトがあるとします。
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;
}
したがって、最初のバージョンでは魔法のよう$.
に行番号が使用されます。しかし、変数で失敗する理由がわかりません。