Perl - Operadores
¿Qué es un operador?
Se puede dar una respuesta simple usando la expresión 4 + 5 es igual a 9 . Aquí 4 y 5 se llaman operandos y + se llama operador. El lenguaje Perl admite muchos tipos de operadores, pero a continuación se muestra una lista de los operadores importantes y más utilizados:
- Operadores aritméticos
- Operadores de igualdad
- Operadores logicos
- Operadores de Asignación
- Operadores bit a bit
- Operadores logicos
- Operadores tipo cotización
- Operadores varios
Echemos un vistazo a todos los operadores uno por uno.
Operadores aritméticos de Perl
Suponga que la variable $ a tiene 10 y la variable $ b tiene 20, luego los siguientes son los operadores aritmáticos de Perl:
No Señor. | Operador y descripción |
---|---|
1 | + ( Addition ) Agrega valores a ambos lados del operador Example - $ a + $ b dará 30 |
2 | - (Subtraction) Resta el operando de la mano derecha del operando de la mano izquierda Example - $ a - $ b dará -10 |
3 | * (Multiplication) Multiplica los valores a ambos lados del operador Example - $ a * $ b dará 200 |
4 | / (Division) Divide el operando de la izquierda por el operando de la derecha Example - $ b / $ a dará 2 |
5 | % (Modulus) Divide el operando de la izquierda por el operando de la derecha y devuelve el resto Example - $ b% $ a dará 0 |
6 | ** (Exponent) Realiza cálculos exponenciales (potencia) en los operadores Example - $ a ** $ b dará 10 elevado a la potencia 20 |
Operadores de igualdad de Perl
También se denominan operadores relacionales. Suponga que la variable $ a tiene 10 y la variable $ b tiene 20, entonces, verifiquemos los siguientes operadores de igualdad numérica
No Señor. | Operador y descripción |
---|---|
1 | == (equal to) Comprueba si el valor de dos operandos es igual o no, si es así, la condición se convierte en verdadera. Example - ($ a == $ b) no es cierto. |
2 | != (not equal to) Comprueba si el valor de dos operandos es igual o no, si los valores no son iguales, la condición se convierte en verdadera. Example - ($ a! = $ B) es cierto. |
3 | <=> Comprueba si el valor de dos operandos es igual o no y devuelve -1, 0 o 1 dependiendo de si el argumento de la izquierda es numéricamente menor, igual o mayor que el argumento de la derecha. Example - ($ a <=> $ b) devuelve -1. |
4 | > (greater than) Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho, si es así, la condición se convierte en verdadera. Example - ($ a> $ b) no es cierto. |
5 | < (less than) Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho, si es así, la condición se convierte en verdadera. Example - ($ a <$ b) es cierto. |
6 | >= (greater than or equal to) Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. Example - ($ a> = $ b) no es cierto. |
7 | <= (less than or equal to) Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho, si es así, la condición se convierte en verdadera. Example - ($ a <= $ b) es cierto. |
A continuación se muestra una lista de operadores de acciones. Suponga que la variable $ a contiene "abc" y la variable $ b contiene "xyz", entonces, verifiquemos los siguientes operadores de igualdad de cadenas:
No Señor. | Operador y descripción |
---|---|
1 | lt Devuelve verdadero si el argumento de la izquierda es una cadena menor que el argumento de la derecha. Example - ($ a lt $ b) es cierto. |
2 | gt Devuelve verdadero si el argumento de la izquierda es una cadena mayor que el argumento de la derecha. Example - ($ a gt $ b) es falso. |
3 | le Devuelve verdadero si el argumento de la izquierda es en sentido de cadena menor o igual que el argumento de la derecha. Example - ($ a le $ b) es cierto. |
4 | ge Devuelve verdadero si el argumento de la izquierda es una cadena mayor o igual que el argumento de la derecha. Example - ($ a ge $ b) es falso. |
5 | eq Devuelve verdadero si el argumento de la izquierda es igual en cadena al argumento de la derecha. Example - ($ a eq $ b) es falso. |
6 | ne Devuelve verdadero si el argumento de la izquierda no es igual al argumento de la derecha. Example - ($ a ne $ b) es cierto. |
7 | cmp Devuelve -1, 0 o 1 dependiendo de si el argumento de la izquierda es menor, igual o mayor que el argumento de la derecha. Example - ($ a cmp $ b) es -1. |
Operadores de asignación de Perl
Suponga que la variable $ a tiene 10 y la variable $ b tiene 20, luego, a continuación, se muestran los operadores de asignación disponibles en Perl y su uso:
No Señor. | Operador y descripción |
---|---|
1 | = Operador de asignación simple, asigna valores de los operandos del lado derecho al operando del lado izquierdo Example - $ c = $ a + $ b se le asignará un valor de $ a + $ b en $ c |
2 | += Agregar operador de asignación Y, agrega el operando derecho al operando izquierdo y asigna el resultado al operando izquierdo Example - $ c + = $ a es equivalente a $ c = $ c + $ a |
3 | -= Restar operador de asignación Y, resta el operando derecho del operando izquierdo y asigna el resultado al operando izquierdo Example - $ c - = $ a es equivalente a $ c = $ c - $ a |
4 | *= Multiplica el operador de asignación AND, multiplica el operando derecho con el operando izquierdo y asigna el resultado al operando izquierdo Example - $ c * = $ a es equivalente a $ c = $ c * $ a |
5 | /= Operador de división Y asignación, divide el operando izquierdo con el operando derecho y asigna el resultado al operando izquierdo Example - $ c / = $ a es equivalente a $ c = $ c / $ a |
6 | %= Operador de asignación de módulo Y, toma el módulo usando dos operandos y asigna el resultado al operando izquierdo Example - $ c% = $ a es equivalente a $ c = $ c% a |
7 | **= Operador de asignación Y de exponente, realiza cálculos exponenciales (potencia) en los operadores y asigna valor al operando izquierdo Example - $ c ** = $ a es equivalente a $ c = $ c ** $ a |
Operadores bit a bit de Perl
El operador bit a bit trabaja con bits y realiza operaciones bit a bit. Suponga si $ a = 60; y $ b = 13; Ahora en formato binario serán los siguientes:
$ a = 0011 1100
$ b = 0000 1101
-----------------
$ a y $ b = 0000 1100
$ a | $ b = 0011 1101
$ a ^ $ b = 0011 0001
~ $ a = 1100 0011
Existen los siguientes operadores Bitwise compatibles con el lenguaje Perl, suponga que si $ a = 60; y $ b = 13
No Señor. | Operador y descripción |
---|---|
1 | & El operador AND binario copia un bit al resultado si existe en ambos operandos. Example - ($ a & $ b) dará 12 que es 0000 1100 |
2 | | El operador OR binario copia un bit si existe en otro operando. Example - ($ a | $ b) dará 61 que es 0011 1101 |
3 | ^ El operador binario XOR copia el bit si está configurado en un operando pero no en ambos. Example - ($ a ^ $ b) dará 49 que es 0011 0001 |
4 | ~ El operador de complemento binario es unario y tiene el efecto de "voltear" bits. Example - (~ $ a) dará -61 que es 1100 0011 en forma de complemento a 2 debido a un número binario con signo. |
5 | << Operador binario de desplazamiento a la izquierda. El valor de los operandos de la izquierda se mueve a la izquierda el número de bits especificado por el operando de la derecha. Example - $ a << 2 dará 240 que es 1111 0000 |
6 | >> Operador de cambio a la derecha binario. El valor de los operandos de la izquierda se mueve hacia la derecha el número de bits especificado por el operando de la derecha. Example - $ a >> 2 dará 15 que es 0000 1111 |
Operadores lógicos de Perl
Existen los siguientes operadores lógicos compatibles con el lenguaje Perl. Suponga que la variable $ a es verdadera y la variable $ b es falsa, entonces -
No Señor. | Operador y descripción |
---|---|
1 | and Operador llamado lógico AND. Si ambos operandos son verdaderos, entonces la condición se vuelve verdadera. Example - ($ ay $ b) es falso. |
2 | && El operador AND lógico de estilo C copia un bit al resultado si existe en ambos operandos. Example - ($ a && $ b) es falso. |
3 | or Operador OR lógico llamado. Si alguno de los dos operandos es distinto de cero, la condición se cumple. Example - ($ a o $ b) es cierto. |
4 | || El operador OR lógico de estilo C copia un bit si existe en otro operando. Example - ($ a || $ b) es cierto. |
5 | not Operador llamado lógico NOT. Use para revertir el estado lógico de su operando. Si una condición es verdadera, el operador NOT lógico la convertirá en falsa. Example - no ($ ay $ b) es cierto. |
Operadores tipo cotización
Existen los siguientes operadores de tipo Cotización compatibles con el lenguaje Perl. En la siguiente tabla, un {} representa cualquier par de delimitadores que elija.
No Señor. | Operador y descripción |
---|---|
1 | q{ } Encierra una cadena entre comillas simples Example - q {abcd} da 'abcd' |
2 | qq{ } Encierra una cadena entre comillas dobles Example - qq {abcd} da "abcd" |
3 | qx{ } Incluye una cadena con comillas invertidas Example - qx {abcd} da `abcd` |
Operadores varios
Existen los siguientes operadores diversos compatibles con el lenguaje Perl. Suponga que la variable a tiene 10 y la variable b tiene 20, entonces -
No Señor. | Operador y descripción |
---|---|
1 | . El punto de operador binario (.) Concatena dos cadenas. Example - Si $ a = "abc", $ b = "def" entonces $ a. $ B dará "abcdef" |
2 | x El operador de repetición x devuelve una cadena que consta del operando izquierdo repetido el número de veces especificado por el operando derecho. Example - ('-' x 3) dará ---. |
3 | .. El operador de rango ... devuelve una lista de valores contando (de a uno) desde el valor de la izquierda al valor de la derecha Example - (2..5) dará (2, 3, 4, 5) |
4 | ++ El operador de incremento automático aumenta el valor entero en uno Example - $ a ++ dará 11 |
5 | -- El operador Auto Decrement reduce el valor entero en uno Example - $ a-- dará 9 |
6 | -> El operador de flecha se usa principalmente para desreferenciar un método o variable de un objeto o un nombre de clase Example - $ obj -> $ a es un ejemplo para acceder a la variable $ a desde el objeto $ obj. |
Precedencia de los operadores de Perl
La siguiente tabla enumera todos los operadores de mayor a menor precedencia.
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