[前へ]   [目次へ]   

演算子の優先順位(Perl)


   (05/07/21) 演算子リストの「/=(除算代入)」の解説が除算ではなく減算になっていたのを修正

今回はPerl言語の優先順位について書こうと思います。

とはいえ私のPerlの演算子の知識は怪しいものがあるので、
とりあえずPerlリファレンスのperlopから引っ張ろうと思ったのですが・・・
私英語読めません(汗)。しかもこのファイル100KBもあります(汗)。

というわけで完全なリストの作成を断念しました・・・。
機会があれば補完しようとは思いますが・・・。

とりあえずperlopから分かった範囲と現在の知識で作ったリストです。
???になっている部分は現時点でうまく書けなかったものです。(理解していないものも含めて)
リストの終わりへ
表記名前または意味優先順位結合規則解説備考
->デリファレンス23リファレンスを参照します。
++インクリメント22なし目標の変数に1加算します。C/C++同様、前置後置の区別があります。
--デクリメント22なし目標の変数に1減算します。C/C++同様、前置後置の区別があります。
**べき乗21左辺の右辺乗の値になります。
!論理NOT(反転)20論理値の真と偽を逆転します。
~NOT(補数)20目標のビットを全反転した値になります。
\リファレンス取得20目標の変数のリファレンスになります。
+単項+20効果不明
-算術否定20値の正負を逆転させた値になります。
=~???19???
!~???19???
*乗算18左右の乗算(掛け算)の結果になります。
/除算18左右の除算(割り算)の結果になります。
%剰余18左右の剰余(余りを求める)の結果になります。
x???18???
+加算17左右の加算(足し算)の結果になります。
-減算17左右の減算(引き算)の結果になります。
.文字列結合17左辺に右辺の文字列を結合します。
<<左シフト16左辺のビットを右辺分左にずらした結果になります。左に溢れたものは消えます。
なくなった右部分は0が補完されます。
>>右シフト16左辺のビットを右辺分右にずらした結果になります。右に溢れたものは消えます。
なくなった左部分は0が補完されます。
named unary operators???15なし???
<より小さい14なし左辺が右辺より小さい時、真になります。
>より大きい14なし左辺が右辺より大きい時、真になります。
<=以下14なし左辺が右辺以下の時、真になります。
>=以上14なし左辺が右辺以上の時、真になります。
ltより小さい(文字列)14なし左辺が右辺より小さい時、真になります。(文字列)
gtより大きい(文字列)14なし左辺が右辺より大きい時、真になります。(文字列)
le以下(文字列)14なし左辺が右辺以下の時、真になります。(文字列)
ge以上(文字列)14なし左辺が右辺以上の時、真になります。(文字列)
==等価13なし左辺と右辺が等しい時、真になります。
!=以外13なし左辺が右辺以外の時、真になります。
<=>???13なし???
eq等価(文字列)13なし左辺と右辺が等しい時、真になります。(文字列)
ne以外(文字列)13なし左辺が右辺以外の時、真になります。(文字列)
cmp???13なし???
&AND(論理積)12左右のビット毎のAND(両方1の時1)の結果になります。
|OR(論理和)11左右のビット毎のOR(片方または両方が1の時1)の結果になります。
^XOR(排他的論理和)11左右のビット毎のXOR(片方が1の時1)の結果になります。
&&論理AND10左右が両方真の時、真になります。最後に評価した値を返します。
||論理OR9左右の片方または両方が真の時、真になります。最後に評価した値を返します。
..範囲8なし左辺から右辺までの範囲のリストを返します。他にも何かある・・・?
...範囲8なし左辺から右辺までの範囲のリストを返します。他にも何かある・・・?
? :条件7左の条件が真の時、中央を、偽の時、右の記述になります。
=代入6右辺の内容を左辺に代入します。
*=乗算代入6右辺の内容で左辺を乗算します。
**=べき乗代入6右辺の内容で左辺をべき乗します。
/=除算代入6右辺の内容で左辺を除算します。
%=剰余代入6右辺の内容で左辺を剰余します。
+=加算代入6右辺の内容で左辺を加算します。
-=減算代入6右辺の内容で左辺を減算します。
<<=左シフト代入6右辺の内容で左辺を左シフトします。
>>=右シフト代入6右辺の内容で左辺を右シフトします。
&=AND代入6右辺の内容で左辺をANDします。
|=OR代入6右辺の内容で左辺をORします。
^=XOR代入6右辺の内容で左辺をXORします。
,カンマ5スカラでは右辺値を返す。リストでは区切り。
=>カンマ?5,と同等。
list operators (rightward)???4なし???
not低優先度NOT3論理値の真と偽を逆転します。!の優先順位が下がったもの
and低優先度AND2左右が両方真の時、真になります。&&の優先順位が下がったもの
or低優先度OR1左右の片方または両方が真の時、真になります。||の優先順位が下がったもの
xor論理XOR1左右の片方が真の時、真になります。

書いてみて気付きましたが、Perlって演算子多いんですね。
今回???になっていて書ききれていない部分は機会があれば補完します。


[前へ]   [目次へ]   

プログラミング講座 総合目次

最終更新 2016/03/31