- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:open (FILEHANDLE,"< $filename") or die "エラーメッセージ";について)
問題:ファイルのオープンエラーが表示されない
このQ&Aのポイント
- 質問者は、Perlのプログラムでファイルを開く際にエラーメッセージを表示するために「die」関数を使用しています。しかし、ファイル名を変更した場合にエラーメッセージが表示されず、原因が分からないと困っています。
- 質問者のプログラムは、指定されたファイルを開くために「open」関数を使用しています。その際、ファイルを開けない場合は「die」関数でエラーメッセージを表示する仕組みです。
- 質問者が問題としているのは、ファイル名を変更した場合にエラーメッセージが表示されないことです。このような場合は、ファイルが存在しない可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
# > ・・という文章が出力されないのですが、 # ↑どこに出力されないのか? というか、 # エラーメッセージを通常どこで確認しているかが不明ですが、 # エラーメッセージを標準エラーメッセージファイル"STDERR"以外に、 # 画面にも出力するように指定する。 use CGI::Carp qw(fatalsToBrowser); my $filename = '/usr/local/apache/htdocs/aaa/bbb/a_perl_read_writes.txt'; open (FILEHANDLE,"< $filename") or die "$filenameを開けません。"; # 上記を、手元の # WinXP Pro.SP2 + Apache 1.3 + ActivePerl 5.8.4(810) + shift-jis # で試すと画面(ブラウザ)に以下が出ます。 # (結果) # /usr/local/apache/htdocs/aaa/bbb/a_perl_read_writes.txtを開けません。at c:\apache\cgi-bin\nu\hoge.pl line nn. # key word : Perl STDERR, use CGI::Carp
補足
or die(~)で指定している文章が、dieの時に表示されないのです。 dieでストップしてしまいます。 エラーメッセージを画面上に表示させたい訳ではありません。それはアパッチのlogで普通に確認出来ます。 何故、or die(~)で指定している文章が、dieの時に表示されないのかが疑問なのです。 okiyoshiさんの環境ではdieに指定した文章が、die時に表示されているので、環境の問題なのですかね? もう少し待ってみます。