カレッヂ |
質問者 みるみ
投稿日 2004/1/8(木) 08:23:36
perlについての質問です。 例外を取得しようと以下のようにやっています。 eval { open F,"< nothing.dat" or die; close F; }; if ($!) {print "$!"; exit;} or と || はほぼ同じ働きかと思ったのですが 「or」 と 「||」ではエラー内容が違っています。 こちらの場合どちらを使用したほうが良いのでしょうか? よろしくお願いします。 -- WinXP + ActivePerl 5.6 です
プロバイダ参照: |
回答者 しゅんじ
[削除]
投稿日 2004/1/9(金) 09:18:19
"||"の場合は、左辺が真なら値を返し、左辺が偽なら偽の値を返します。 "or"の場合は、左辺が真なら値を返し、左辺が偽なら続いて右辺の値を返します。 結局は同じなんだけども、微妙なニュアンスで、エラー結果が違うのかも・・・・ ちなみにevalっても、ファイルオープンの部分を括弧で仕切ってやると、 "or" "||"共に同じエラーになりました・・・・・ 個人的には"or"を使ってます。 解釈が違ってたらすんません。 eval { open (F,"< nothing.dat") || die; close (F); }; if ($!) {print "$!"; exit;} |
質問者 みるみ
[削除]
投稿日 2004/1/9(金) 09:34:44
ご返答有難うございます。 そうでした。かっこでくくるべきでしたね。 open F,"< nothing.dat" || die; だと open F,("< nothing.dat" || die); と同じエラーとなるので優先順位が違うのかもしれませんね。 とりあえず解決しました。有難うございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |