ファイルのオープンに失敗して、ファイルが開けなかった場合に、何か処理をしたい場合、どうすれば良いでしょうか? die関数を使う場合と if文を使う場合をご紹介。
にしし ふぁくとりー

にししの Perl/CGI Tips ふぁくとりー

にししふぁくとりーPerl/CGI Tips → このページ

ファイル操作TIPS

ファイルが開けなかった場合に何か処理をするには?

プログラムからデータファイルを読み書きすることはよくあります。データファイルは、必ずしも開けるとは限りません。 ファイルが存在しないとか、ロックされているとか、様々な理由で開けない可能性もあります。 「開けなかった場合」に何か処理をさせたい場合、どうすれば良いでしょうか?

SOURCE 1

よく使われるシンプルな書き方は die 関数を使った記述です。
open(IN,"$filename") || die('ファイルが開けませんでした。');
上記の場合、ファイル「$filename」が開けなかった場合、「ファイルが開けませんでした」というエラーメッセージを表示して終了します。
このエラーメッセージは、ブラウザからアクセスした場合でも、ちゃんと表示されます。
ただし、メッセージを表示する以上の複雑な処理(複数行にまたがるような処理)は、この方法では書けません。

SOURCE 2

もっと複雑な処理をしたい場合は、if文を使ってファイルオープン処理の成功・失敗を判定させます。
if( open(IN,"$filename") ) {
   # 開けた場合の処理
    : : :
}
else {
   # 開けなかった場合の処理
   print "ファイル( $filename )が開けませんでした。\n";
}
上記の場合は、ファイルが開けなかった場合は else 以降の処理が実行されます。
当然、ここには好きなだけ自由に処理を記述することができます。

SAMPLE SOURCE

ソースコード10 , 出力結果10
2004/02/27. Fri.

このページに記載の内容は、必ずしも正しいとは限りません。ご注意下さい。
もっと良い方法がありましたら、ぜひ、教えて頂けるとありがたいです。
製作者にししへのご連絡は、メールなどでお送り下さい。匿名のコメントも送信できます。
どのページへもリンクは歓迎します。複製・転載はご遠慮下さい。