[解決済み] Perlの"||"と "or "の違いは何ですか?
質問
C言語の演算子の違いは何ですか?
&&
,
||
と、そのPerl版(人間可読版)quot。
and
"、"
or
"、......?
それは、どうやら インターネットコード は、その両方を使用しています。
open (FILE, $file) or die("cannot open $file");
open (FILE, $file) || die("cannot open $file");
解決方法は?
から Perlのドキュメント :
OR
リスト演算子
<ブロッククオートリスト演算子の右側では、非常に低い優先順位で、そこにあるすべてのカンマ区切り式を制御します。優先順位の低い演算子は、論理演算子 "and"、"or"、"not"のみで、これらは、余分の括弧を必要とせずにリスト演算子を呼び出す評価に使用される場合があります。
ロジカル または 定義された または であり、排他的である。 または .
バイナリ "or"は、周囲の2つの式の論理和を返します。これは次の式と同じです。
||
ただし、優先順位が非常に低い。このため、制御フローに有用である。
print FH $data or die "Can't write to FH: $!";
つまり、左の式が偽のときだけ右の式が評価されるという短絡的なものである。優先順位の関係で、おそらくこれを代入に使うのは避けるべきで、制御フローにのみ使うべきです。
$a = $b or $c; # Bug: this is wrong
($a = $b) or $c; # Really means this
$a = $b || $c; # Better written this way
しかし、リストコンテキストの代入で、制御フローに "||" を使おうとしている場合、おそらく "or" が必要で、代入がより優先されるようにします。
@info = stat($file) || die; # Oops, scalar sense of stat!
@info = stat($file) or die; # Better, now @info gets its due
それから、いつでも括弧を使うことができます。
||
<ブロッククオートリスト演算子(print()など)や単項演算子(chdir()など)の次のトークンとして左括弧が続く場合、通常の関数呼び出しと同様に、括弧内の演算子と引数が最も優先されると見なされます。
<ブロッククオート
例えば、名前付き単項演算子は||よりも優先順位が高いからです。
chdir $foo || die; # (chdir $foo) || die
chdir($foo) || die; # (chdir $foo) || die
chdir ($foo) || die; # (chdir $foo) || die
chdir +($foo) || die; # (chdir $foo) || die
関連
-
ファイル操作に関するPerl学習メモ
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 最近のPerlはなぜデフォルトでUTF-8を避けるのですか?
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] 割り算で使う場合の「/」と「//」の違いは何ですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】ビットシフト(bit-shift)演算子とは、どのようなもので、どのように機能するのですか?
-
[解決済み】演算子としての「AND」と「&」の比較
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Perlのprint、printf、sprintfの使用例について説明します。
-
プロセス分析によるhttpsリクエストのチャールズベースクローリング
-
Perl一括で著作権情報を追加する
-
Perl学習ノート - CPANの使い方入門
-
Perl の読み書きファイルの簡単な例
-
Sigilsを使ったPerl5とPerl6の比較
-
Perlは先頭と末尾の空白を削除します(左右の空白文字、空白文字を削除します)。
-
Windows の Thumbs.db から画像キャッシュのサムネイルを削除する Perl
-
2つのファイルを比較し、データをフィルタリングするスクリプトコード(perlで実装されている
-
Perlのハッシュテーブルの使い方を説明する