![]() |
| カレッヂ |
質問者 みるみ
投稿日 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裏技 |