Perl-operators

提供:Dev Guides
移動先:案内検索

Perl-演算子

オペレーターとは?

式_4 + 5 is equal to 9_を使用して簡単な答えを出すことができます。 ここで、4と5はオペランドと呼ばれ、+は演算子と呼ばれます。 Perl言語は多くの演算子タイプをサポートしていますが、以下は重要で最も頻繁に使用される演算子のリストです-

  • 算術演算子
  • 平等演算子
  • 論理演算子
  • 割り当て演算子
  • ビット演算子
  • 論理演算子
  • 引用のような演算子 *その他の演算子

すべての演算子を1つずつ見てみましょう。

Perlの算術演算子

変数$ aが10を保持し、変数$ bが20を保持すると仮定すると、以下はPerlの算術演算子です-

リンク:/perl/arithmetic_operators_example [例を表示]

Sr.No. Operator & Description
1
  • + ( Addition )*

演算子の両側に値を追加します

-$ a + $ bは30を与える

2
  • (減算)*

左側のオペランドから右側のオペランドを減算します

-$ a-$ bは-10になります

3
  • (乗算)*

演算子の両側の値を乗算します

-$ a *$ bは200を与える

4

/(Division)

左オペランドを右オペランドで除算します

-$ b/$ aは2を与える

5

% (Modulus)

左オペランドを右オペランドで除算し、剰余を返します

-$ b%$ aは0を与える

6
  • (指数)*

演算子で指数(パワー)計算を実行します

-$ a * *$ bは10の20乗になります

Perlの等価演算子

これらは関係演算子とも呼ばれます。 変数$ aが10を保持し、変数$ bが20を保持すると仮定して、次の数値等式演算子をチェックします-

リンク:/perl/numeric_equality_operators_example [例を表示]

Sr.No. Operator & Description
1
  • == (equal to)*

2つのオペランドの値が等しいかどうかを確認し、等しい場合は条件が真になります。

-($ a == $ b)は正しくありません。

2

!= (not equal to)

2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。

-($ a!= $ b)はtrueです。

3

<⇒

2つのオペランドの値が等しいかどうかをチェックし、左の引数が右の引数より数値的に小さいか、等しいか、大きいかによって-1、0、または1を返します。

-($ a <⇒ $ b)は-1を返します。

4

> (greater than)

左のオペランドの値が右のオペランドの値よりも大きいかどうかをチェックし、そうであれば条件が真になります。

-($ a> $ b)は正しくありません。

5

< (less than)

左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認し、そうであれば条件が真になります。

-($ a <$ b)は真です。

6

>= (greater than or equal to)

左のオペランドの値が右のオペランドの値以上かどうかをチェックし、はいの場合は条件が真になります。

-($ a> = $ b)は正しくありません。

7

⇐ (less than or equal to)

左のオペランドの値が右のオペランドの値以下かどうかをチェックし、そうであれば条件が真になります。

-($ a ⇐ $ b)はtrueです。

以下はエクイティ演算子のリストです。 変数$ aが「abc」を保持し、変数$ bが「xyz」を保持すると仮定して、次の文字列等式演算子をチェックします-

link:/perl/string_equality_operators_example [例を表示]

Sr.No. Operator & Description
1

lt

左引数が文字列単位で右引数よりも小さい場合にtrueを返します。

-($ a lt $ b)はtrueです。

2

gt

左の引数が右の引数よりも文字列的に大きい場合、trueを返します。

-($ a gt $ b)はfalseです。

3

le

左引数が文字列単位で右引数以下の場合にtrueを返します。

-($ a le $ b)はtrueです。

4

ge

左引数が文字列単位で右引数以上の場合にtrueを返します。

-($ a ge $ b)はfalseです。

5

eq

左の引数が右の引数と文字列的に等しい場合にtrueを返します。

-($ a eq $ b)はfalseです。

6

ne

左引数が文字列単位で右引数と等しくない場合にtrueを返します。

-($ a ne $ b)はtrueです。

7

cmp

左の引数が右の引数よりも文字列的に小さいか、等しいか、大きいかによって、-1、0、または1を返します。

-($ a cmp $ b)は-1です。

Perl割り当て演算子

変数$ aが10を保持し、変数$ bが20を保持すると仮定すると、Perlで使用可能な代入演算子とその使用法は次のとおりです-

リンク:/perl/assignment_operators_example [例を表示]

Sr.No. Operator & Description
1

=

単純な代入演算子、右側のオペランドから左側のオペランドに値を割り当てます

-$ c = $ a + $ bは、$ a + $ bの値を$ cに割り当てます。

2

=* *=

AND代入演算子を追加します。左オペランドに右オペランドを追加し、結果を左オペランドに割り当てます

-$ c + = $ aは$ c = $ c + $ aと同等

3

-=

AND代入演算子を減算します。左オペランドから右オペランドを減算し、結果を左オペランドに割り当てます

-$ c-= $ aは$ c = $ c-$ aと同等です

4

=*=*

AND代入演算子を乗算します。右オペランドと左オペランドを乗算し、結果を左オペランドに割り当てます。

-$ c = $ aは$ c = $ c $ aと同等

5

/= /=

除算AND代入演算子。左オペランドを右オペランドで除算し、結果を左オペランドに割り当てます。

-$ c/= $ aは$ c = $ c/$ aと同等

6

%=

モジュラスAND代入演算子。2つのオペランドを使用してモジュラスを取り、結果を左のオペランドに割り当てます。

-$ c%= $ aは$ c = $ c%aと同等

7

*=*

指数AND代入演算子、演算子で指数(べき乗)計算を実行し、左のオペランドに値を割り当てます

-$ c * = $ aは$ c = $ c *$ aと同等

Perlビット演算子

ビットごとの演算子はビットに対して機能し、ビットごとの演算を実行します。 $ a = 60であると仮定します。および$ b = 13;今バイナリ形式では、次のようになります-

$ a = 0011 1100

$ b = 0000 1101

$ a&$ b = 0000 1100

$ a | $ b = 0011 1101

$ a ^ $ b = 0011 0001

〜$ a = 1100 0011

Perl言語でサポートされている次のビット演算子があります。$ a = 60の場合を想定しています。および$ b = 13

リンク:/perl/bitwise_operators_example [例を表示]

[width="100%",cols="50%,50%",options="header",]
|===
|Sr.No. |Operator & Description |1 a|* &*

バイナリAND演算子は、両方のオペランドに存在する場合、結果にビットをコピーします。

*例*-($ a&$ b)は12を与えます。これは0000 1100です

|2 a| *|*

バイナリOR演算子は、eatherオペランドにビットが存在する場合、それをコピーします。

*例*-($ a | $ b)は0011 1101である61を与える

|3 a| *^*

バイナリXOR演算子は、両方ではなく1つのオペランドにビットが設定されている場合、ビットをコピーします。

*例*-($ a ^ $ b)は49を返します。これは0011 0001です

|4 a| *~*

Binary Ones Complement Operatorは単項で、「反転」ビットの効果があります。

*例*-(〜$ a)は、-61を返します。これは、符号付き2進数のため、2の補数形式で1100 0011です。

|5 a| *<<*

バイナリ左シフト演算子。 左のオペランドの値は、右のオペランドで指定されたビット数だけ左に移動します。

*例*-$ a << 2は240となり、1111 0000になります

|6 a| *>>*

バイナリ右シフト演算子。 左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。

*例*-$ a >> 2は0000 1111である15を与える

|===

=== Perlの論理演算子

Perl言語でサポートされている論理演算子は次のとおりです。 変数$ aがtrueを保持し、変数$ bがfalseを保持すると仮定します-

リンク:/perl/logical_operators_example [例を表示]

[width="100%",cols="50%,50%",options="header",]
|===
|Sr.No. |Operator & Description |1 a| *and*

論理AND演算子が呼び出されました。 両方のオペランドが真の場合、条件は真になります。

*例*-($ aおよび$ b)はfalseです。

|2 a| *&&*

Cスタイルの論理AND演算子は、両方のオペランドに存在する場合、結果にビットをコピーします。

*例*-($ a && $ b)はfalseです。

|3 a| *or*

論理OR演算子と呼ばれます。 2つのオペランドのいずれかがゼロ以外の場合、条件は真になります。

*例*-($ aまたは$ b)はtrueです。

|4 a| *||*

Cスタイルの論理OR演算子は、eatherオペランドにビットが存在する場合、それをコピーします。

*例*-($ a || $ b)はtrueです。

|5 a| *not*

論理否定演算子と呼ばれます。 オペランドの論理状態を反転するために使用します。 条件が真の場合、論理否定演算子は偽になります。

*例*-not($ a and $ b)はtrueです。

|===

=== 引用のような演算子

Perl言語でサポートされている次の引用のような演算子があります。 次の表では、\ {}は選択した区切り文字のペアを表します。

リンク:/perl/quote_like_operators_example [例を表示]

[width="100%",cols="50%,50%",options="header",]
|===
|Sr.No. |Operator & Description |1 a| *q\{ }*

単一引用符で文字列を囲みます

*例*-q \ {abcd}は 'abcd'を与える

|2 a| *qq\{ }*

文字列を二重引用符で囲みます

*例*-qq \ {abcd}は「abcd」を与える

|3 a| *qx\{ }*

引用符を含む文字列を囲みます

*例*-qx \ {abcd}は `abcd`を与える

|===

=== その他の演算子

Perl言語でサポートされている以下のその他の演算子があります。 変数aが10を保持し、変数bが20を保持すると仮定します-

リンク:/perl/miscellaneous_operators_example [例を表示]

[width="100%",cols="50%,50%",options="header",]
|===
|Sr.No. |Operator & Description |1 a| *.*

二項演算子ドット(。)は、2つの文字列を連結します。

*例*-$ a = "abc"、$ b = "def"の場合、$ a。$ bは "abcdef"を返します。

|2 a| *x*

繰り返し演算子xは、右のオペランドで指定された回数だけ繰り返された左のオペランドで構成される文字列を返します。

*例*-( '-' x 3)は---を返します。

|3 a|
*..* *..*

範囲演算子.. 左の値から右の値まで(1ずつ)カウントする値のリストを返します

*例*-(2..5)は(2、3、4、5)を与える

|4 a|
*++* *++*

自動インクリメント演算子は整数値を1増加させます

*例*-$ a ++は11を返します

|5 a| *--*

自動デクリメント演算子は整数値を1つ減らします

*例*-$ a--は9になります

|6 a| *->*

矢印演算子は、主にオブジェクトまたはクラス名からメソッドまたは変数を逆参照する際に使用されます

*例*-$ obj-> $ aは、オブジェクト$ objから変数$ aにアクセスする例です。

|===

=== Perl演算子の優先順位

次の表に、優先順位の高いものから低いものまで、すべての演算子を示します。

リンク:/perl/operators_precedence_example [例を表示]

[source,result,notranslate]
----
left    terms and list operators (leftward)
left    ->
nonassoc    ++ --
right   **
right   ! ~ \ and unary + and -
left    =~ !~
left */% x
left    + - .
left    << >>
nonassoc    named unary operators
nonassoc    < > <= >= lt gt le ge
nonassoc    == != <=> eq ne cmp ~~
left    &
left    | ^
left    &&
left    ||//
nonassoc    ..  ...
right   ?:
right   = += -=* = etc.
left    , =>
nonassoc    list operators (rightward)
right   not
left    and
left    or xor
----