Operadores numéricos
Como la mayoría de lenguajes de programación, Perl tiene los operadores numéricos básicos: + para la suma, - para la resta, * para la multiplicación, / para la división:
use strict; use warnings; use 5.010; say 2 + 3; # 5 say 2 * 3; # 6 say 9 - 5; # 4 say 8 / 2; # 4 say 8 / 3; # 2.66666666666667
Perl usa automáticamente números en coma flotante cuando es necesario, por lo que al dividir 8 entre 3 obtenemos un valor en coma flotante.
El operador modulo % devuelve el resto de la división entera:
use strict; use warnings; use 5.010; say 9 % 2; # 1 say 9 % 5; # 4
Estos mismos operadores numéricos también se pueden usar sobre variables escalares (en):
use strict; use warnings; use 5.010; my $x = 2; my $y = 3; say $x + $y; # 5 say $x / $y; # 0.666666666666667
Asignaciones compuestas
La expresión $x += 3; es la versión abreviada de $x = $x + 3;, ambas producen exactamente el mismo resultado:
use strict; use warnings; use 5.010; my $x = 2; say $x; # 2 $x = $x + 3; say $x; # 5 my $y = 2; say $y; # 2 $y += 3; say $y; # 5
En general, VARIABLE OP= EXPRESION es lo mismo que VARIABLE = VARIABLE OP EXPRESION, normalmente es más fácil de leer y menos proclive a errores (No tenemos que repetir el nombre de la VARIABLE) Este tipo de asignación compuesta se puede utilizar con cualquier operador binario:
+=, *=, -=, /=, incluso %=
Perl también proporciona los operadores ++ y -- para auto incremento y auto decremento. Estos operadores incrementan y decrementan respectivamente el valor de una variable escalar por 1.
Tanto las versiones postfijas $x++ y $x--, como las versiones prefijas
++$x y --$x están disponibles y funcionan de la misma manera que en
otros lenguajes de programación.
En caso de que no las conozcas, no es el mejor momento para explorarlas a fondo.
Cuando se usan dentro de una expresión más grande es cuando usar operadores prefijos o postfijos realmente importa. En
la mayoría de los casos es mejor evitar esas expresiones, pueden provocar dolores de cabeza fácilmente.
Tendremos un articulo explicando los corto circuitos en expresiones booleanas y los problemas
con auto incrementos.
Adicionalmente, el operador de auto incremento también funciona con strings como se
explica en string operators (en).
Auto incremento y auto decremento
use strict;
use warnings;
use 5.010;
my $x = 2;
say $x; # 2
$x++;
say $x; # 3
$x--;
say $x; # 2

Published on 2015-03-05