Introducción
Vamos a darle un vistazo rápido a todos los operadores que podemos encontrar en perl.
Si ya han manejado un lenguaje de programación antes, esto no se les hará nada complicado debido a que realmente no cambian mucho los operadores de lenguaje a lenguaje.
Los operadores arítmeticos básicos
Ejemplo | Tipo | Resultado |
$a+$b | Suma | Suma de $a más $b |
$a-$b | Resta | Resultado de la resta $a menos $b |
$a*$b | Multiplicación | Producto de $a por $b |
$a/$b | División | Resultado $a entre $b |
$a%$b | Residuo (Modulus) | Es el residuo de la divisón de $a entre $b |
$a**$b | Potenciar | $a a la protencia de $b |
Operadores de cadena(string)
Para evitar confusiones, las variables de cadena(string) en perl tienen sus propios operadores. Estos operadores son . y x. A continuación les muestro como funcionan estos operadores comparados con los operadores arítmeticos:
$a=2;
$b=3;
#OPERADORES DE SUMA
print $a+$b . "\n"; #Operador Arítmetico: Despliega 5
print $a.$b . "\n"; #Operador de Cadena: Despliega 2y3=23
#OPERADORES DE MULTIPLICACIÓN
print $a*$b . "\n"; #Operador Arítmetico: Despliega 6
print $a x $b . "\n"; #Operador de Cadena: Despliega $a un total de $b veces=222
Operadores de asignación
Los operadores de asignación como su nombre dicen asignan el valor del lado izquierdo de un = a la variable que se encuentre del lado derecho.
Dentro de estos operadores de asignación podemos encontrar varios muy útiles para escribir más rápido nuesto código.
Aquí les muestro unos ejemplos donde en comentarios les pongo a lo que es similar el operador de asignación si lo pusieramos con operadores básicos:
$a=3;
$b="x";
$c=4;
$a*=3; #$a=$a*3;
$a/=3; #$a=$a/3;
$a+=2; #$a=$a+2;
$a-=2; #$a=$a-2;
$b x=3; #$b=$b x $3
$b .="33"; #b=$b."33"
Operadores de comparación
Tipo | Númerico | Cadena |
Mayor A | > | gt |
Menor A | < | lt |
Igual A | == | eq |
No Igual A | != | ne |
Menor o Igual A | <= | le |
Mayor o Igual A | >= | ge |
Estos operadores sirven para comparar dos variables, el resultado de la comparasión puede regresar 1 si es verdero o 0 si es falso.
Por ejemplo:
$a = 5;
$b = 6;
if($a<$b){
print "Si es menor";
}
Al realizar la comparasión como es verdadera regresá verdadero por lo que se imprime nuestro mensaje.
Las comparaciones también las podemos hacer con cadenas, por ejemplo:
$a = "z";
$b = "c";
if($a > $b){
print "a es mayor";
}
Aquí vemos como perl inteligentemente va a comparar de manera correcta las letras del alfabeto, y como z es mayor que a, desplegará de manera correcta el mensaje.
Operadores de auto-incrementación y auto-decrementación
Estos operadores sencillamente suman o restan 1 a la variable deseada.
Lo único es que dependiendo de donde pongamos nuestro operador es el orden en que hace las cosas. Si ponen nuestro operador antes de la variable, esta primero se incrementa y luego regresa su valor, en cambio si el operador viene después la variable primero regresá su valor y después lo cambia.
Para hacerlo sencillo vamos a ver unos ejemplos:
$a = 1;
print $a++;
Aquí lo que se va a desplegar es 1, debido a que el operador esta después de la variable, la variable primero regresá su valor que es 1, y después lo incrementa.
$a = 1;
print ++$a;
Ahora como el operador esta antes de la variable, primero incrementa su valor y después lo regresa, por lo que vamos a ver desplegado el número 2.
Esto es lo mismo si queremos restarle a la variable, pero en vez de usar el operador "++" usaríamos el de "--".
Operadores Lógicos
Ejemplo | Versión Corta | Versión Textual | Significado |
$a and $b; $a && b | && | and | regresa verdadero si las variables $a y $b estan definidas y no son 0 |
$a or $b; $a||$b | || | or | regresa verdadero si alguna de las variables $a ó $b esta definida y no es 0 |
!$a; not $a | ! | not | Regresá el contrario de lo que la expresión regresaría |
Estos operadores son muy usados al momento de evaluar acciones para controlar el flujo de nuestro programa, por ejemplo:
open(FILE,"archivo.txt") or die("No se puedo abrir el archivo");
También se usan mucho para comprobar variables:
if(!$mivariable){
print "Debes de poner algun valor";
}