close関数:ファイルを閉じる

Perl で用意されている組み込み関数の一つである close 関数の使い方です。 close 関数は開いているファイルハンドルを指定してファイルを閉じます。

※ファイル操作について詳しくは「ファイル操作」を参照して下さい。

(Last modified: )

close関数の書式と基本的な使い方

close 関数は次のように定義されています。

close
close([FILEHANDLE])
ファイルハンドルを指定してファイルを閉じます。

パラメータ:
  FILEHANDLE  ファイルハンドル
戻り値:
  ファイルを閉じることに成功したら真(true)、失敗したら偽(false)

省略可能な 1 番目の引数にはファイルとのコネクションに対して割り当てるファイルハンドル名を指定します。開いているファイルハンドルを指定する必要があります。引数が省略された場合は現在使われているファイルハンドルを使用します。

具体的には次のように記述します。

open(DATA, "filename.txt");
close(DATA);
サンプルコード

それでは簡単なサンプルを作成します。

use strict;
use warnings;
use utf8;
use open ":utf8";
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

open(DATAFILE, "< data.txt") or die("Error");

if (close(DATAFILE)){
  print "ファイルは閉じるのに成功しました\n";
}else{
  print "ファイルは閉じるのに失敗しました\n";
}

if (close(DATAFILE)){
  print "ファイルは閉じるのに成功しました\n";
}else{
  print "ファイルは閉じるのに失敗しました\n";
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

close関数:ファイルを閉じる(1)

開いたファイルを一度閉じます。これは成功しますが、同じファイルハンドルを対象にもう一度 close 関数を実行すると、開いていないのに閉じようとするため今度は失敗します。

-- --

Perl で用意されている組み込み関数の一つである close 関数の使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。