Um operador é um símbolo que informa ao compilador para realizar uma operação matemática ou lógica específica, como: 3+2=5.
A linguagem Perl possui diversos operadores integrados. Vamos dar uma olhada em alguns dos mais usados:
operadores aritméticos
operador de comparação
Operadores lógicos
operador de atribuição
Operadores de bits
operador de cotação
Outras operadoras
precedência do operador
No exemplo da tabela, definimos as variáveis $a como 10 e $b como 20.
operador | descrever | Exemplo |
---|---|---|
+ | Adição | $a + $b resulta em 30 |
- | Subtração | $a - $b resulta em -10 |
* | Multiplicação | $a * $b resulta em 200 |
/ | Operação de divisão | $b / $a resulta em 2 |
% | Encontre a operação de resto, resto após divisão inteira | $b % $a resulta em 0 |
** | Multiplique ao poder | O resultado de $a**$b é 10 elevado à 20ª potência |
O resultado de saída da execução do programa acima é:
$a = 10, $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0,5$a % $b = 10$a ** $ b = 16
No exemplo da tabela, definimos as variáveis $a como 10 e $b como 20.
operador | descrever | Exemplo |
---|---|---|
== | Verifica se os valores de dois operandos são iguais, se iguais então a condição é verdadeira, caso contrário é falsa. | ($a == $b) é falso |
!= | Verifica se os valores dos dois operandos são iguais, caso contrário a condição é verdadeira, caso contrário é falsa. | ($a != $b) é verdade. |
<=> | Verifica se os valores dos dois operandos são iguais, retornando -1 se o número da esquerda for menor que o número da direita, 0 se forem iguais e 1 se o número da esquerda for maior que o número à direita. | ($a <=> $b) retorna -1. |
> | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim então a condição é verdadeira, caso contrário é falsa. | ($a > $b) retorna falso. |
< | Verifica se o valor do operando esquerdo é menor que o valor do operando direito, se sim então a condição é verdadeira, caso contrário retorna falso. | ($a < $b) retorna verdadeiro. |
>= | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim então a condição é verdadeira, caso contrário retorna falso. | ($a >= $b) retorna falso. |
<= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim então a condição é verdadeira, caso contrário retorna falso. . | ($a <= $b) retorna verdadeiro. |
O resultado de saída da execução do programa acima é:
$a = 10 , $b = 20$a == $b O resultado é falso$a != $b O resultado é verdadeiro$a <=> $b Return -1$a > $b O resultado é falso$a >= $b O resultado é falso $a < $b resulta verdadeiro$a <= $b resulta verdadeiro
No exemplo de tabela a seguir, defina a variável $a como "abc" e $b como "xyz" e use operadores de comparação para calcular o resultado.
operador | descrever | Exemplo |
---|---|---|
isso | Verifica se a string à esquerda é menor que a string à direita, em caso afirmativo retorna verdadeiro, caso contrário retorna falso. | ($a lt $b) retorna verdadeiro. |
gt | Verifica se a string à esquerda é maior que a string à direita, se sim retorna verdadeiro, caso contrário retorna falso. | ($a gt $b) retorna falso. |
eu | Verifica se a string à esquerda é menor ou igual à string à direita, em caso afirmativo retorna verdadeiro, caso contrário retorna falso. | ($a le $b) retorna verdadeiro |
ge | Verifica se a string à esquerda é maior ou igual à string à direita, se sim retorna verdadeiro, caso contrário retorna falso. | ($a ge $b) retorna falso. |
equação | Verifica se a string da esquerda é igual à string da direita, se sim retorna verdadeiro, caso contrário retorna falso. | ($a eq $b) retorna falso. |
não | Verifica se a string da esquerda não é igual à string da direita, se sim retorna verdadeiro, caso contrário retorna falso. | ($a ne $b) retorna verdadeiro |
cmp | Retorna 1 se a string à esquerda for maior que a string à direita, 0 se for igual e -1 se a string à esquerda for menor que a string à direita. | ($a cmp $b) retorna -1. |
O resultado de saída da execução do programa acima é:
$a = abc, $b = xyzabc lt $b retorna verdadeiro$a gt $b retorna falso$a le $b retorna verdadeiro$a ge $b retorna falso$a ne $b retorna verdadeiro$a cmp $b retorna -1
No exemplo da tabela, definimos as variáveis $a como 10 e $b como 20.
operador | descrever | Exemplo |
---|---|---|
= | Operador de atribuição simples, atribui o valor do operando direito ao operando esquerdo | $c = $a + $b atribuirá o valor de $a + $b a $c |
+= | O operador de adição e atribuição atribui o resultado da adição do operando direito ao operando esquerdo ao operando esquerdo. | $c += $a é igual a $c = $c + $a |
-= | O operador de atribuição AND de subtração atribui o resultado da subtração do operando direito do operando esquerdo ao operando esquerdo. | $c -= $a é igual a $c = $c - $a |
*= | O operador de multiplicação e atribuição atribui o resultado da multiplicação do operando direito pelo operando esquerdo ao operando esquerdo. | $c *= $a é igual a $c = $c * $a |
/= | O operador de divisão e atribuição atribui o resultado da divisão do operando esquerdo pelo operando direito ao operando esquerdo. | $c /= $a é igual a $c = $c / $a |
%= | Módulo e operador de atribuição, encontra o módulo de dois operandos e o atribui ao operando esquerdo | $c %= $a é equivalente a $c = $c % a |
**= | O operador de exponenciação e atribuição encontra a potência dos dois operandos e os atribui ao operando esquerdo. | $c **= $a é equivalente a $c = $c ** $a |
O resultado de saída da execução do programa acima é:
$a = 10, $b = 20. Após a atribuição, $c = 30$c = 40, instrução de operação $c += $a$c = 30, instrução de operação $c -= $a$c = 300, instrução de operação $c *= $a$c = 30, instrução de operação $c /= $a$c = 0, instrução de operação $c %= $a$a = 4, $c = 2$c = 16, instrução de operação $c **= $a
Os operadores bit a bit operam em bits e realizam operações bit a bit.
Definindo $a = 60, $b = 13, agora em formato binário, eles ficam assim:
$a = 0011 1100$b = 0000 1101-----------------$a&$b = 0000 1100$a|$b = 0011 1101$a^$b = 0011 0001 ~$a = 1100 0011
Os operadores bit a bit suportados pelo Perl são mostrados na tabela a seguir:
operador | descrever | Exemplo |
---|---|---|
& | O operador binário AND copia um bit para o resultado se ambos os operandos estiverem presentes. | ($a & $b) lhe dará 12, que em binário é 0000 1100 |
| | O operador binário OR copia um bit para o resultado se estiver presente em qualquer um dos operandos. | ($a | $b) obterá 61, que é 0011 1101 em binário |
^ | O operador binário XOR copia um bit do resultado se estiver presente em um dos operandos, mas não em ambos. | ($a ^ $b) lhe dará 49, que em binário é 0011 0001 |
~ | O operador complemento do binário é um operador unário que tem o efeito de "inverter" os bits, ou seja, 0 torna-se 1 e 1 torna-se 0. | (~$a ) dará -61, que é 1100 0011 em binário, a forma de complemento de um número binário assinado. |
<< | Operador binário de deslocamento à esquerda. O valor do operando esquerdo é deslocado para a esquerda pelo número de bits especificado pelo operando direito. | $a << 2 lhe dará 240, que é 1111 0000 em binário |
>> | Operador binário de deslocamento à direita. O valor do operando esquerdo é deslocado para a direita pelo número de bits especificado pelo operando direito. | $a >> 2 obterá 15 que em binário é 0000 1111 |
O resultado de saída da execução do programa acima é:
$a = 60 , $b = 13$a & $b = 12$a | $b = 61$a ^ $b = 49~$a = -61$a << 2 = 240$a >> 2 = 15
Os operadores lógicos Perl são mostrados na tabela a seguir.
No exemplo da tabela, definimos a variável $a como verdadeira e $b como falsa.
operador | descrever | Exemplo |
---|---|---|
e | Operador lógico AND. Se ambos os operandos forem verdadeiros, a condição é verdadeira. | ($a e $b) é falso. |
&& | Operador AND lógico estilo C. A condição é verdadeira se ambos os operandos forem verdadeiros | ($a && $b) é falso. |
ou | Operador lógico OR. A condição é verdadeira se qualquer um dos dois operandos for diferente de zero. | ($a ou $b) é verdadeiro. |
|| | Operador OR lógico estilo C. A condição é verdadeira se qualquer um dos dois operandos for diferente de zero. | ($a || $b) é verdadeiro. |
não | Operador lógico NOT. Usado para inverter o estado lógico do operando. Se a condição for verdadeira, o operador lógico NOT a tornará falsa. | not($a e $b) é verdadeiro. |
O resultado de saída da execução do programa acima é:
$a = true , $b = false$a e $b = false$a && $b = false$a ou $b = true$a ||
Os operadores de cotação Perl são mostrados na tabela a seguir.
operador | descrever | Exemplo |
---|---|---|
q{ } | Adicione aspas simples à string | q{abcd} resulta em 'abcd' |
qq{ } | Adicione aspas duplas à string | qq{abcd} resulta em "abcd" |
qx{ } | Adicionar crases à string | qx{abcd} resulta em `abcd` |
O resultado de saída da execução do programa acima é:
q{a = $a} = a = $aqq{a = $a} = a = 10qx{data} = sexta-feira, 10 de junho de 2016 16:22:33 CST
Além dos operadores mencionados acima, Perl também suporta os seguintes operadores:
operador | descrever | Exemplo |
---|---|---|
. | O ponto (.) é usado para concatenar duas strings. | Se $a="run", $b="oob" , o resultado de $a.$b é "codercto" |
x | O operador x retorna o número de vezes que uma string é repetida. | ('-' x 3) A saída é ---. |
.. | .. é o operador de intervalo. | (2..5) O resultado de saída é (2, 3, 4, 5) |
++ | Operador de incremento, valor inteiro aumenta em 1 | $a =10, $a++ produzirá 11 |
-- | Operador de decremento, diminui um valor inteiro em 1 | $a =10, $a-- a saída é 9 |
-> | As setas são usadas para especificar métodos de uma classe | $obj->$a representa o método $a do objeto $obj. |
O resultado de saída da execução do programa acima é:
$a = executar , $b = oob$a . $b = codercto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10 , $b = 15$a executar $a++ = 11$b executar $b-- = 14
A tabela a seguir lista a precedência do operador da linguagem Perl:
operador | associatividade |
---|---|
++, -- | nenhum |
-, ~, ! | direita para esquerda |
** | direita para esquerda |
=~, !~ | da esquerda para a direita |
*, /, %, x | da esquerda para a direita |
+, -, . | da esquerda para a direita |
<<, >> | da esquerda para a direita |
-e, -r, | nenhum |
<, <=, >, >=, lt, le, gt, ge | da esquerda para a direita |
==, !=, <=>, eq, ne, cmp | da esquerda para a direita |
& | da esquerda para a direita |
|, ^ | da esquerda para a direita |
&& | da esquerda para a direita |
|| | da esquerda para a direita |
.. | da esquerda para a direita |
? e : | direita para esquerda |
=, +=, -=, *=, | direita para esquerda |
outro | |
, | da esquerda para a direita |
não | da esquerda para a direita |
e | da esquerda para a direita |
ou, xor | da esquerda para a direita |
O resultado de saída da execução do programa acima é:
$a = 20, $b = 10, $c = 15, $d = 5($a + $b) * $c / $d = 90(($a + $b) * $c) / $d = 90($a + $b) * ($c / $d ) = 90$a + ($b * $c )/ $d = 50