Perl-演算子
演算子とは何ですか?
4 +5は9に等しいという式を使用して簡単な答えを与えることができます。ここで、4と5はオペランドと呼ばれ、+は演算子と呼ばれます。Perl言語は多くの演算子タイプをサポートしていますが、以下は重要で最も頻繁に使用される演算子のリストです-
- 算術演算子
- 等式演算子
- 論理演算子
- 代入演算子
- ビット演算子
- 論理演算子
- 引用のような演算子
- その他の演算子
すべての演算子を1つずつ見ていきましょう。
Perl算術演算子
変数$ aが10を保持し、変数$ bが20を保持すると仮定すると、Perlの算術演算子は次のようになります。
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | + ( Addition ) 演算子のいずれかの側に値を追加します Example − $ a + $ bは30を与えます |
2 | - (Subtraction) 左側のオペランドから右側のオペランドを減算します Example − $ a- $ bは-10を与えます |
3 | * (Multiplication) 演算子のいずれかの側で値を乗算します Example − $ a * $ bは200を与えます |
4 | / (Division) 左側のオペランドを右側のオペランドで除算します Example − $ b / $ aは2を与えます |
5 | % (Modulus) 左側のオペランドを右側のオペランドで除算し、余りを返します Example − $ b%$ aは0を与えます |
6 | ** (Exponent) 演算子の指数(パワー)計算を実行します Example − $ a ** $ bは10の20乗になります |
Perlの等式演算子
これらは関係演算子とも呼ばれます。変数$ aが10を保持し、変数$ bが20を保持すると仮定して、次の数値等価演算子をチェックしましょう-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | == (equal to) 2つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が真になります。 Example −($ a == $ b)は正しくありません。 |
2 | != (not equal to) 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 Example −($ a!= $ b)は真です。 |
3 | <=> 2つのオペランドの値が等しいかどうかをチェックし、左の引数が右の引数よりも数値的に小さいか、等しいか、大きいかに応じて、-1、0、または1を返します。 Example −($ a <=> $ b)は-1を返します。 |
4 | > (greater than) 左のオペランドの値が右のオペランドの値より大きいかどうかを確認します。大きい場合は、条件が真になります。 Example −($ a> $ b)は正しくありません。 |
5 | < (less than) 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認します。小さい場合は、条件が真になります。 Example −($ a <$ b)は真です。 |
6 | >= (greater than or equal to) 左のオペランドの値が右のオペランドの値以上であるかどうかをチェックします。はいの場合、条件は真になります。 Example −($ a> = $ b)は正しくありません。 |
7 | <= (less than or equal to) 左のオペランドの値が右のオペランドの値以下であるかどうかをチェックします。はいの場合、条件は真になります。 Example −($ a <= $ b)は真です。 |
以下は、エクイティオペレーターのリストです。変数$ aが「abc」を保持し、変数$ bが「xyz」を保持すると仮定して、次の文字列等価演算子をチェックしましょう-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | lt 左の引数が右の引数より文字列的に小さい場合はtrueを返します。 Example −($ a lt $ b)は真です。 |
2 | gt 左の引数が右の引数より文字列的に大きい場合はtrueを返します。 Example −($ a gt $ b)はfalseです。 |
3 | le 左の引数が文字通り右の引数以下の場合にtrueを返します。 Example −($ a le $ b)は真です。 |
4 | ge 左の引数が右の引数以上の文字列の場合にtrueを返します。 Example −($ a ge $ b)はfalseです。 |
5 | eq 左の引数が文字通り右の引数と等しい場合にtrueを返します。 Example −($ a eq $ b)はfalseです。 |
6 | ne 左の引数が文字列的に右の引数と等しくない場合はtrueを返します。 Example −($ a ne $ b)は真です。 |
7 | cmp 左の引数が文字列的に右の引数よりも小さいか、等しいか、大きいかに応じて、-1、0、または1を返します。 Example −($ a cmp $ b)は-1です。 |
Perl代入演算子
変数$ aが10を保持し、変数$ bが20を保持すると仮定すると、Perlで使用可能な代入演算子とその使用法は次のとおりです。
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | = 単純な代入演算子、右側のオペランドから左側のオペランドに値を代入します Example − $ c = $ a + $ bは、$ a + $ bの値を$ cに割り当てます。 |
2 | += AND代入演算子を追加します。これは、右のオペランドを左のオペランドに追加し、結果を左のオペランドに割り当てます。 Example − $ c + = $ aは$ c = $ c + $ aと同等です |
3 | -= AND代入演算子を減算します。左オペランドから右オペランドを減算し、その結果を左オペランドに代入します。 Example − $ c- = $ aは$ c = $ c- $ aと同等です |
4 | *= 乗算AND代入演算子。右のオペランドと左のオペランドを乗算し、その結果を左のオペランドに代入します。 Example − $ c * = $ aは$ c = $ c * $ aと同等です |
5 | /= AND代入演算子を除算します。左オペランドを右オペランドで除算し、結果を左オペランドに代入します。 Example − $ c / = $ aは$ c = $ c / $ aと同等です |
6 | %= モジュラスAND代入演算子。2つのオペランドを使用してモジュラスを取り、その結果を左側のオペランドに割り当てます。 Example − $ c%= $ aは$ c = $ c%aと同等です |
7 | **= 指数AND代入演算子、演算子に対して指数(累乗)計算を実行し、左側のオペランドに値を割り当てます Example − $ 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
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | & バイナリAND演算子は、両方のオペランドに存在する場合、結果にビットをコピーします。 Example −($ a&$ b)は12を与えます。これは00001100です。 |
2 | | バイナリOR演算子は、イーザーオペランドに存在する場合、ビットをコピーします。 Example −($ a | $ b)は、6111101である61を返します。 |
3 | ^ バイナリXOR演算子は、ビットが両方ではなく一方のオペランドに設定されている場合、そのビットをコピーします。 Example −($ a ^ $ b)は、00110001である49を返します。 |
4 | ~ Binary Ones Complement Operatorは単項であり、「フリッピング」ビットの効果があります。 Example −(〜$ a)は、符号付き2進数のため、2の補数形式で11000011である-61を返します。 |
5 | << バイナリ左シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ左に移動します。 Example − $ a << 2は、11110000である240を返します。 |
6 | >> バイナリ右シフト演算子。左のオペランドの値は、右のオペランドで指定されたビット数だけ右に移動します。 Example − $ a >> 2は15を与え、これは00001111です。 |
Perl論理演算子
Perl言語でサポートされている論理演算子は次のとおりです。変数$ aが真であり、変数$ bが偽であると仮定すると、−
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | and 論理AND演算子と呼ばれます。両方のオペランドが真の場合、条件は真になります。 Example −($ aおよび$ b)はfalseです。 |
2 | && Cスタイルの論理AND演算子は、両方のオペランドにビットが存在する場合、結果にビットをコピーします。 Example −($ a && $ b)は偽です。 |
3 | or 論理OR演算子と呼ばれます。2つのオペランドのいずれかがゼロ以外の場合、条件は真になります。 Example −($ aまたは$ b)は真です。 |
4 | || Cスタイルの論理OR演算子は、イーザーオペランドに存在する場合、ビットをコピーします。 Example −($ a || $ b)は真です。 |
5 | not 論理NOT演算子と呼ばれます。オペランドの論理状態を逆にするために使用します。条件がtrueの場合、LogicalNOT演算子はfalseになります。 Example − not($ aおよび$ b)は真です。 |
引用のような演算子
Perl言語でサポートされているQuoteのような演算子は次のとおりです。次の表で、{}は選択した区切り文字のペアを表します。
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | q{ } 文字列を一重引用符で囲みます Example − q {abcd}は 'abcd'を与えます |
2 | qq{ } 文字列を二重引用符で囲みます Example − qq {abcd}は「abcd」を与えます |
3 | qx{ } 文字列を-引用符で囲みます Example − qx {abcd}は `abcd`を与えます |
その他の演算子
Perl言語でサポートされているその他の演算子は次のとおりです。変数aが10を保持し、変数bが20を保持すると仮定すると、-
例を表示
シニア番号 | オペレーターと説明 |
---|---|
1 | . 二項演算子ドット(。)は、2つの文字列を連結します。 Example − $ a = "abc"、$ b = "def"の場合、$ a。$ bは "abcdef"を返します。 |
2 | x 繰り返し演算子xは、右側のオペランドで指定された回数繰り返された左側のオペランドで構成される文字列を返します。 Example −( '-' x 3)は---を与えます。 |
3 | .. 範囲演算子..は、左の値から右の値まで(1ずつ)カウントする値のリストを返します。 Example −(2..5)は(2、3、4、5)を与えます |
4 | ++ 自動インクリメント演算子は整数値を1つ増やします Example − $ a ++は11を与えます |
5 | -- 自動デクリメント演算子は整数値を1つ減らします Example − $ a--は9を与えます |
6 | -> 矢印演算子は主に、オブジェクトまたはクラス名からメソッドまたは変数を逆参照する際に使用されます Example − $ obj-> $ aは、オブジェクト$ objから変数$ aにアクセスする例です。 |
Perl演算子の優先順位
次の表に、すべての演算子を優先順位の高いものから低いものの順に示します。
例を表示
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