Perl5 リファレンス



close

【文法】

close ファイルハンドル


【説明】

ファイルハンドルに関連付けられたファイルやパイプを閉じます。バッファを一気に消去
(フラッシュ)し、システムファイルディスクリプターを閉じることができたときには、
true(真)を返します。ファイルハンドルが指定されていない場合には、その時選択され
ていたファイルハンドルを閉じます。

その時使っていた同じファイルハンドル名で、他のファイルなどをすぐにオープンするの
であれば、そのファイルハンドルを閉じる必要はありません。open関数が自動的にファイ
ルをクローズしてくれるのです(open関数を参照)。しかし、入力ファイルにおける明示
的な "close" は、ラインカウンター "$." (最後に入力したファイルハンドルの現在の
行番号)をリセットしてしまいます。それに対して、open関数によってなされる暗黙の
"close" は、ラインカウンターをリセットしません。

もし、ファイルハンドルが、パイプを使ってオープンされた場合、他のシステムコールの
一つがfalse(偽)を含んでいたり、プログラムがnon-zeroの状態で存在したのであれば、
"close" は、さらにfalse(偽)を返します。(一つでもnon-zeroの状態でプログラムが
存在したならば、"$!" は0にセットされます。) パイプを閉じる場合もまた、そのパイ
プで実行しているプログラムが完了するまで、待たされます。そして、後でパイプの出力
結果を見たい場合のために、暗黙のうちに、コマンドの終了ステータス値を "$?" にセッ
トします。


【使用例】

                   open(OUTPUT, '|sort >foo')  # pipe to sort
                       or die "Can't start sort: $!";
                   #...                        # print stuff to output
                   close OUTPUT                # wait for sort to finish
                       or warn $! ? "Error closing sort pipe: $!"
                                  : "Exit status $? from sort";
                   open(INPUT, 'foo')          # get sort's results
                       or die "Can't open 'foo' for input: $!";

               FILEHANDLE may be an expression whose value can be
               used as an indirect filehandle, usually the real
               filehandle name.



Perl5リファレンスに戻る