不思議に思ってたのは俺だけかもしれませんが。
forループで大きいファイルを処理しようとすると、全行読み込んでtemporaryのリストを作るので、ファイルサイズの2倍ぐらいのメモリを食ってしまう。なのでforじゃなくてwhileのほうが良いってのは知ってました。
で、ちょくちょく気になってたのが、こんなサンプルコード。
for my $num (1..1_000_000){ # hogehoge }
でっけーリスト作るからダメなんじゃねーの??なんて思ってたんですが、どうやら違ったみたい。
Perlの最新バージョンでは、範囲は実行時に評価される。
Perlベストプラクティス P.229
というわけなので使っても大丈夫らしい。