Introducción
Los enunciados modificados básicamente es la unión de una expresión con una palabra para realizar una acción.
Las palabras o modificadores que se pueden usar son: if,unless,until y while.
La sintáxis de cualquiera de estos enunciados es:
EXPRESIÓN modificador CONDICIÓN
Modificador if
El modificador if le dice a Perl que cierta expresión debe de evaluarse solamente si se cumple con cierta condicional.
Sintáxis:
EXPRESIÓN if CONDICIONAL;
Como podrán ver, este enunciado es una forma pequeña de decir:
if(CONDICIONAL){
EXPRESIÓN
}
Ejemplo:
Veamos el siguiente código:
my $nombre = "Uriel";
print "Eres el administrador" if $nombre eq "Uriel";
Aquí nuestra expresión es el print, el cual será ejecutado solo si la variable $nombre es Uriel, siendo esta parte la condicional.
Modificador unless
Este modificador es el opuesto del if. Le dice a Perl que evalúe cierta expresión solamente si la condicional NO es verdadera.
Sintáxis:
EXPRESIÓN unless CONDICIONAL;
Esta es la forma más pequeña de decir:
if(!CONDICIONAL){
EXPRESIÓN
}
Ejemplo:
my $var = 1;
print "Falso" unless $var;
Como ven, aquí no va a imprimir nada, porque como la variable $var es verdadera el enunciado no es evaluado.
Modificador until
Este modificador lo que hace es decirle a Perl que evalúe una expresión hasta que la condicional sea verdadera.
Sintáxis:
EXPRESIÓN until CONDICIONAL;
Esta es la forma pequeña de decir:
until(CONDICIÓN){
EXPRESIÓN
}
Ejemplo:
Veamos el siguiente código:
my $num = 1;
$num++ until $num > 10;
print "$num";
¿Qué crees que imprima? Si dijiste que 11, estás en lo correcto. Esto se debe a que Perl ejecutará la expresión de incremento hasta que la variable sea mayor al número 10. Así que cuando llega a 11 Perl ve que la condicional se cumple y deja de evalúar la expresión.
Modificador while
Este modificador es un poco diferente al until, pues este modificador evalúa la expresión mientras la condicional sea verdadera.
Sintáxis:
EXPRESIÓN while CONDICIONAL;
Esta es la forma pequeña de decir:
while(CONDICIÓN){
EXPRESIÓN
}
Ejemplo:
my $num = 1;
$num++ while $num < 10;
print "$num";
De nuevo ¿qué crees que imprima?. Si dijiste 10 nuevamente estas en lo cierto. Perl sigue evaluando la expresión hasta que la condicional sea falsa. Por eso cuando llega a 10 al no ser menor que 10 ya no evalúa nuevamente la expresión.