<> から 100 KB を読み取り、テストを行ってから 100 KB を戻して、後で <> が読み取れるようにしたいと考えています。
メタコード:
$data100kb = read(<>,100000);
testing($data100kb);
unget(<>,$data100kb);
while(<>) {
do stuff;
}
<> が実際のファイル、パイプ、または実際のファイルの連結を提供するかどうかは事前にわかりません。したがって、次のように動作するはずです:
cat bigfile_a bigfile_b | perl my_program
bigfile が 1000*RAM サイズであると仮定すると、入力のコピーは法外なコストがかかります。
STDIN からしか読み取れなくても構いません。
バックグラウンド
最初の 100kb は、完全な入力を解析する方法を教えてくれますが、パーサーはこの入力も必要とします。