Perlについての質問箱 12箱目
■ このスレッドは過去ログ倉庫に格納されています
0472デフォルトの名無しさん
NGNGそれはseek関数とは全く関係なく、<>が「行入力演算子」だからだ。
ファイルハンドルは内部に読み込み位置のポインタを保持している。行入力演算子は
読み込みが起きると同時に、ポインタを読み終わった次の位置まで進める。
seekはその内部ポインタの移動命令で、そのコードでは読み込み開始前にポインタ
位置を先頭に初期化しているにすぎない。読み込むたびにポインタが移動するのは
行入力演算子の機能。
詳しく言えば、そのコードでは行入力演算子がスカラーコンテキストで評価されている
から一行入力になっているが、リストコンテキストになると行入力演算子はファイルを
一気に全部読み取って、行単位で分割した結果をリストにして返して、ポインタも当然
ファイル末尾まで一気に移動したりするんだが、そのコードには関係ない話だな。
以上。
■ このスレッドは過去ログ倉庫に格納されています