=head1 NAME Enjoy! Perl Programming - No.21 =head1 SYNOPSIS データの保存 - ファイル操作(2) =head1 DESCRIPTION Perl言語におけるファイルの操作の2回目。今回はエラー処理です。 =head2 エラー処理とは何か? エラー処理で重要なことはエラーが発生したときにどのように処理 するか?の知識の他に、何をエラーとするかの明確な意思を持つこ とです。ユーザーが入力したデータをエラーとするかどうかはプロ グラマの手に(もしくはプログラムの仕様に)かかっています。 ファイル処理に置いてはオープン時にファイルが存在しないときに どうするか?は最低限考えないといけないことでは有りますが、存 在しないからといってエラーとしてプログラムを終了するかどうか はまさにプログラムの仕様によることになります。存在しないなら 作っちゃえということも考えられますしね! =head2 ファイルオープン時のエラー処理 例を見てみましょう。 [例題21-1] open( FILE, "< hello.txt" ) # ファイルオープン or die "File open error: $!"; # エラー処理 ここでは"open"関数の戻り値が「偽」の時に"die"関数でプログラム を終了させています。"die"関数は引数としてリストを取り、リスト の内容を標準エラー出力(通常は画面)に表示します。"open"関数 の戻り値が「偽」であるときには、特殊変数"$!"にシステムエラーが セットされるので、同時に出力しています。 [例題21-1]は以下のように書くことと同じです。 [例題21-2] unless ( defined( open( FILE, "< hello.txt" ) ) { die "File open error: $!"; } "or die 〜"という記述は慣用句的に使われますので覚えておくと 便利です。 =head1 SEE ALSO "open"と"die" 関数の各ドキュメントページ。 "perlopentut"ファイルオープンチュートリアルページ。 =head1 編集後記「Perl以前」 初めてプログラム言語に触れたのは、学生の時の情報処理演習の 授業だった。そのとき学んだのは"FORTRAN"。今から15年程前の ことだ。そのときの教科書を見るとあの時はこんなことも分から なかったのだなあと思う。その時はコンピュータにまったく興味 が無かったのでどんな授業だったかも覚えていない。ただ、教室 は唯一空調が効いていて、夏の盛りは天国だなあと感じていたこ とは覚えている。。。 スクリプト実行環境 OS : Windows ME, NT4.0, 2000 Perl: ActivePerl v5.6.1 build 631 マガジン登録/解除 マガジン名:Enjoy! Perl Programming マガジンID:0000082873 登録/解除:http://www.lares.dti.ne.jp/~y-kazu/perl/ 配信   :週刊 編集/発行:吉田和弘(Yoshida Kazuhiro) E-Mail  :y-kazu@lares.dti.ne.jp このメールマガジンは、インターネットの本屋さん『まぐまぐ』を 利用して発行しています。http://www.mag2.com/ 感謝!!