Un operador es un símbolo que le indica al compilador que realice una operación matemática o lógica específica, como por ejemplo: 3+2=5.
El lenguaje Perl tiene una gran cantidad de operadores integrados. Echemos un vistazo a los más utilizados:
operadores aritméticos
operador de comparación
Operadores lógicos
operador de asignación
Operadores de bits
operador de cotización
Otros operadores
precedencia del operador
En el ejemplo de la tabla, configuramos las variables $a en 10 y $b en 20.
| operador | describir | Ejemplo |
|---|---|---|
| + | Suma | $a + $b resulta en 30 |
| - | operación de resta | $a - $b resulta en -10 |
| * | Multiplicación | $a * $b da como resultado 200 |
| / | Operación de división | $b / $a resulta en 2 |
| % | Operación de búsqueda del resto, resto después de la división de enteros | $b % $a resulta en 0 |
| ** | multiplicar al poder | El resultado de $a**$b es 10 elevado a la vigésima potencia |
El resultado de salida de la ejecución del programa anterior es:
$a = 10 , $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0.5$a % $b = 10$a ** $ segundo = 16
En el ejemplo de la tabla, configuramos las variables $a en 10 y $b en 20.
| operador | describir | Ejemplo |
|---|---|---|
| == | Comprueba si los valores de dos operandos son iguales, si son iguales entonces la condición es verdadera, en caso contrario es falsa. | ($a == $b) es falso |
| != | Comprueba si los valores de los dos operandos son iguales, si no la condición es verdadera, en caso contrario es falsa. | ($a! = $b) es cierto. |
| <=> | Comprueba si los valores de los dos operandos son iguales, devolviendo -1 si el número de la izquierda es menor que el número de la derecha, 0 si son iguales y 1 si el número de la izquierda es mayor que el número. A la derecha. | ($a <=> $b) devuelve -1. |
| > | Comprueba si el valor del operando izquierdo es mayor que el valor del operando derecho; de ser así, la condición es verdadera; de lo contrario, es falsa. | ($a > $b) devuelve falso. |
| < | Comprueba si el valor del operando izquierdo es menor que el valor del operando derecho; de ser así, la condición es verdadera; de lo contrario, devuelve falso. | ($a < $b) devuelve verdadero. |
| >= | Comprueba si el valor del operando izquierdo es mayor o igual que el valor del operando derecho, si es así entonces la condición es verdadera, de lo contrario devuelve falso. | ($a >= $b) devuelve falso. |
| <= | Comprueba si el valor del operando izquierdo es menor o igual que el valor del operando derecho; de ser así, la condición es verdadera; de lo contrario, devuelve falso. . | ($a <= $b) devuelve verdadero. |
El resultado de salida de la ejecución del programa anterior es:
$a = 10 , $b = 20$a == $b El resultado es falso$a != $b El resultado es verdadero$a <=> $b Retornar -1$a > $b El resultado es falso$a >= $b El resultado es falso $a < $b resulta verdadero$a <= $b resulta verdadero
En el siguiente ejemplo de tabla, establezca la variable $a en "abc" y $b en "xyz" y luego utilice operadores de comparación para calcular el resultado.
| operador | describir | Ejemplo |
|---|---|---|
| es | Comprueba si la cadena de la izquierda es más pequeña que la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a lt $b) devuelve verdadero. |
| gt | Comprueba si la cadena de la izquierda es mayor que la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a gt $b) devuelve falso. |
| le | Comprueba si la cadena de la izquierda es menor o igual que la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a le $b) devuelve verdadero |
| ge | Comprueba si la cadena de la izquierda es mayor o igual que la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a ge $b) devuelve falso. |
| ecuación | Comprueba si la cadena de la izquierda es igual a la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a eq $b) devuelve falso. |
| nordeste | Comprueba si la cadena de la izquierda no es igual a la cadena de la derecha; si es así, devuelve verdadero; de lo contrario, devuelve falso. | ($a ne $b) devuelve verdadero |
| cmp | Devuelve 1 si la cadena de la izquierda es mayor que la cadena de la derecha, 0 si es igual y -1 si la cadena de la izquierda es menor que la cadena de la derecha. | ($a cmp $b) devuelve -1. |
El resultado de salida de la ejecución del programa anterior es:
$a = abc, $b = xyzabc lt $b devuelve verdadero$a gt $b devuelve falso$a le $b devuelve verdadero$a ge $b devuelve falso$a ne $b devuelve verdadero$a cmp $b devuelve -1
En el ejemplo de la tabla, configuramos las variables $a en 10 y $b en 20.
| operador | describir | Ejemplo |
|---|---|---|
| = | Operador de asignación simple, asigna el valor del operando derecho al operando izquierdo | $c = $a + $b asignará el valor de $a + $b a $c |
| += | El operador de suma y asignación asigna el resultado de sumar el operando derecho al operando izquierdo al operando izquierdo. | $c += $a es igual a $c = $c + $a |
| -= | El operador de resta Y asignación asigna el resultado de restar el operando derecho del operando izquierdo al operando izquierdo. | $c -= $a es igual a $c = $c - $a |
| *= | El operador de multiplicación y asignación asigna el resultado de multiplicar el operando derecho por el operando izquierdo al operando izquierdo. | $c *= $a es igual a $c = $c * $a |
| /= | El operador de división y asignación asigna el resultado de dividir el operando izquierdo por el operando derecho al operando izquierdo. | $c /= $a es igual a $c = $c / $a |
| %= | Operador de módulo y asignación, encuentra el módulo de dos operandos y lo asigna al operando izquierdo | $c %= $a es equivalente a $c = $c % a |
| **= | El operador de exponenciación y asignación encuentra la potencia de los dos operandos y los asigna al operando izquierdo. | $c **= $a es igual a $c = $c ** $a |
El resultado de salida de la ejecución del programa anterior es:
$a = 10, $b = 20. Después de la asignación, $c = 30$c = 40, declaración de operación $c += $a$c = 30, declaración de operación $c -= $a$c = 300, declaración de operación $c *= $a$c = 30, declaración de operación $c /= $a$c = 0, declaración de operación $c %= $a$a = 4, $c = 2$c = 16, declaración de operación $c **= $a
Los operadores bit a bit operan sobre bits y realizan operaciones bit a bit.
Configurando $a = 60, $b = 13, ahora en formato binario, se ven así:
$a = 0011 1100$b = 0000 1101-----------------$a&$b = 0000 1100$a|$b = 0011 1101$a^$b = 0011 0001 ~$a = 1100 0011
Los operadores bit a bit admitidos por Perl se muestran en la siguiente tabla:
| operador | describir | Ejemplo |
|---|---|---|
| & | El operador binario AND copia un bit al resultado si ambos operandos están presentes. | ($a & $b) te dará 12, que en binario es 0000 1100 |
| | | El operador binario OR copia un bit al resultado si está presente en cualquiera de los operandos. | ($a | $b) obtendrá 61, que es 0011 1101 en binario |
| ^ | El operador binario XOR copia un bit al resultado si está presente en uno de los operandos pero no en ambos. | ($a ^ $b) te dará 49, que en binario es 0011 0001 |
| ~ | El operador de complemento binario es un operador unario que tiene el efecto de "invertir" bits, es decir, 0 se convierte en 1 y 1 se convierte en 0. | (~$a ) dará -61, que es 1100 0011 en binario, la forma en complemento a uno de un número binario con signo. |
| << | Operador de desplazamiento binario a la izquierda. El valor del operando izquierdo se desplaza hacia la izquierda el número de bits especificado por el operando derecho. | $a << 2 te dará 240, que es 1111 0000 en binario |
| >> | Operador de desplazamiento binario a la derecha. El valor del operando izquierdo se desplaza hacia la derecha el número de bits especificado por el operando derecho. | $a >> 2 obtendrá 15 que en binario es 0000 1111 |
El resultado de salida de la ejecución del programa anterior es:
$a = 60 , $b = 13$a & $b = 12$a | $b = 61$a ^ $b = 49~$a = -61$a << 2 = 240$a >> 2 = 15
Los operadores lógicos de Perl se muestran en la siguiente tabla.
En el ejemplo de la tabla, configuramos la variable $a en verdadero y $b en falso.
| operador | describir | Ejemplo |
|---|---|---|
| y | Operador lógico AND. Si ambos operandos son verdaderos, la condición es verdadera. | ($a y $b) es falso. |
| && | Operador AND lógico estilo C. La condición es verdadera si ambos operandos son verdaderos. | ($a && $b) es falso. |
| o | Operador lógico O. La condición es verdadera si cualquiera de los dos operandos es distinto de cero. | ($a o $b) es cierto. |
| || | Operador OR lógico estilo C. La condición es verdadera si cualquiera de los dos operandos es distinto de cero. | ($a || $b) es cierto. |
| no | Operador lógico NOT. Se utiliza para invertir el estado lógico del operando. Si la condición es verdadera, el operador lógico NOT la hará falsa. | not ($a y $b) es cierto. |
El resultado de salida de la ejecución del programa anterior es:
$a = verdadero, $b = falso$a y $b = falso$a && $b = falso$a o $b = verdadero$a || $b = truenot($a)= 1
Los operadores de cotización de Perl se muestran en la siguiente tabla.
| operador | describir | Ejemplo |
|---|---|---|
| q{ } | Agregar comillas simples a la cadena | q{abcd} da como resultado 'abcd' |
| qq{ } | Agregar comillas dobles a la cadena | qq{abcd} da como resultado "abcd" |
| qx{ } | Agregar comillas invertidas a la cadena | qx{abcd} da como resultado `abcd` |
El resultado de salida de la ejecución del programa anterior es:
q{a = $a} = a = $aqq{a = $a} = a = 10qx{fecha} = viernes 10 de junio de 2016 16:22:33 CSTAdemás de los operadores que mencionamos anteriormente, Perl también admite los siguientes operadores:
| operador | describir | Ejemplo |
|---|---|---|
| . | El punto (.) se utiliza para concatenar dos cadenas. | Si $a="run", $b="oob" , el resultado de $a.$b es "codercto" |
| incógnita | El operador x devuelve el número de veces que se repite una cadena. | ('-' x 3) La salida es ---. |
| .. | .. es el operador de rango. | (2..5) El resultado de salida es (2, 3, 4, 5) |
| ++ | Operador de incremento, el valor entero aumenta en 1 | $a =10, $a++ generará 11 |
| -- | Operador de decremento, disminuye un valor entero en 1 | $a =10, $a-- la salida es 9 |
| -> | Las flechas se utilizan para especificar métodos de una clase. | $obj->$a representa el método $a del objeto $obj. |
El resultado de salida de la ejecución del programa anterior es:
$a = ejecutar , $b = oob$a . $b = codificadorcto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10 , $b = 15$a ejecutar $a++ = 11$b ejecutar $b-- = 14
La siguiente tabla enumera la precedencia de operadores del lenguaje Perl:
| operador | asociatividad |
|---|---|
| ++, -- | ninguno |
| -, ~, ! | derecha a izquierda |
| ** | derecha a izquierda |
| =~, !~ | de izquierda a derecha |
| *, /, %, x | de izquierda a derecha |
| +, -, . | de izquierda a derecha |
| <<, >> | de izquierda a derecha |
| -e, -r, | ninguno |
| <, <=, >, >=, lt, le, gt, ge | de izquierda a derecha |
| ==, !=, <=>, eq, ne, cmp | de izquierda a derecha |
| & | de izquierda a derecha |
| |, ^ | de izquierda a derecha |
| && | de izquierda a derecha |
| || | de izquierda a derecha |
| .. | de izquierda a derecha |
| ? y : | derecha a izquierda |
| =, +=, -=, *=, | derecha a izquierda |
| otro | |
| , | de izquierda a derecha |
| no | de izquierda a derecha |
| y | de izquierda a derecha |
| o, xor | de izquierda a derecha |
El resultado de salida de la ejecución del programa anterior es:
$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