lunes, 9 de septiembre de 2013

Control de Flujo en Perl


Perl tiene una serie de estructuras de control de flujo, el control de flujo permite realizar acciones cuando se dá una determinada condición, sin el control de flujo la aplicación se ejecuta de modo lineal, es decir de arriba a abajo, gracias al control de flujo se pueden controlar determinadas acciones necesarias, que hacen que un programa sea dinámico.

Estructuras de control de flujo en Perl:


if

La sentencia if es una estructura que permite determinar si la condición es verdadera o falsa, para ello se utilizan instrucciones para cada condición dada, en Perl al igual que en otros lenguajes de alto rendimiento se dá la posibilidad de encadenar condiciones a través de elsif, finalizando con else si ninguna de la condiciones dadas es cierta.

#if elsif else

$numero1 = 1;
$numero2 = 2;

if ($numero1 == $numero2)
{
print "El $numero1 es igual que $numero2";
}
elsif ($numero1 > $numero2)
{
print "El $numero1 es mayor que $numero2";
}
elsif ($numero1 < $numero2)
{
print "El $numero1 es menor que $numero2";
}
else
{
print "Error";
}


while

while es una estructura de control cuyo misión es realizar un búcle determinado por la condición dada. Este tipo de búcles tienen que tener un delimitador y una variable incrementable o decrementable -> $variable++; o $variable--;, de lo contrario se convierte en un búcle infinito.

#while
my $x = 0; #autoincrementable
my $limite = 9; #delimitador

while ($x <= $limite)
{
print "$x \n";
$x++;
}


Para detener el búcle condicionado por una sentencia condicional se utiliza la palabra reservada last, es el equivalente a break en PHP.

Ejemplo:

#while last -> detener el bucle
my $x = 9;
my $limite = 0;

while ($x >= $limite)
{
print "$x \n";
if ($x == 5)
{
last;
}
$x--;
}


do while

do while es una estructura de control muy semejante a while, prácticamente su función y el resultado conseguido es el mismo, la estructura básica es la siguiente -> do{instrucciones} while(condición);

Ejemplo:

#do while

my $pasos = 0;
my @elementos = ("cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve");

do
{
print $elementos[$pasos]."\n";
$pasos++;
}
while
($pasos <= @elementos);


for

for permite ejecutar búcles, estructura -> for(inicio, condición, incremento ++ | decremento --){instrucciones}

Ejemplo:

#for
my @elementos = ("cero", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve");

for ($x = 0; $x < @elementos; $x++)
{
print $elementos[$x]."\n";
}


foreach

foreach permite recorrer los elementos de un array, estructura -> foreach $elemento (@elementos {instrucciones}

#foreach
my @elementos = ("cero", "uno", "dos", "tres", "cuatro", "cinco");
foreach $elemento (@elementos)
{
print $elemento."\n";
}