Como ya habrás podido observar todas las intrucciones de PERL deben terminar en ";".
Ejemplo
$numero = 2; print $numero;
Además las únicas cosas que deben de ser declaradas en PERL son los formatos de salida o reports y las subrutinas. Todas las variables creadas y no inicializadas tienen como valor por defecto nulo o cero. Los comentarios deben ir precedidos del símbolo #. Ahora veremos de forma práctica el uso de las sentencias de control condicionales e iterativas que suministra el lenguaje PERL para alterar el flujo de un programa.
En primer lugar entenderemos como BLOQUE a todo conjunto de sentencias que se encuentren entre dos llaves, por ejemplo lo siguiente sería un bloque:
{
$numero=2;
print $numero;
}
Los bloques, además, pueden ser etiquetados anteponiendo a la llave de apertura el nombre de la etiqueta mas dos puntos.
En segundo lugar entenderemos como EXPRESION a toda expresión cuya evaluación resulte ser un valor booleano, es decir, verdadero o falso. Hay que tener en cuenta que en PERL se considera como verdadero todo valor no nulo luego se pueden presentar como expresiones el resultado de una asignación,de una búsqueda etc...
Una vez hechas estas consideraciones pasamos a ver la sintaxis de los distintos esquemas de control, que como ya hemos dicho antes pueden ser:
- Esquemas condicionales.
- Esquemas iterativos.
Dentro de los primeros tenemos los siguientes formatos:
- if (EXPRESION) BLOQUE. Un ejemplo de uso podría ser: print " PENSANDO UN NUMERO ....\n";
$numero = rand(100);
print "Introduce un numero del 1 al 100:";
$entrada = <STDIN>;
if($entrada
$numero) {print "Has acertado el numero\n";}
if($entrada > $numero) {print "El numero introducido es mayor que el pensado.\n";}
if($entrada < $numero) {print "El numero introducido es menor que el pensado.\n";}
print " EL NUMERO PENSADO ERA:",$numero;
if (EXP) BLOQUE else BLOQUE. Un ejemplo podria ser: print " PENSANDO UN NUMERO ....\n";
$numero = rand(100);
print " Introduce un numero del 1 al 100:";
$entrada = <STDIN>;
if($entrada
$numero)
{
print "Has acertado el numero\n";
}
else
{
if($entrada > $numero)
{
print "El numero introducido es mayor que el pensado.\n";
}
else
{
print "El numero introducido es menor que el pensado.\n";
}
}
- if (EXP) BLOQUE elsif (EXP) BLOQUE .... else BLOQUE. Un ejemplo podria ser: print " PENSANDO UN NUMERO ....\n";
$numero = rand(100);
print " Introduce un numero del 1 al 100:";
$entrada = <STDIN>;
if($entrada
$numero)
{
print "Has acertado el numero\n";
}
elsif($entrada > $numero)
{
print "El numero introducido es mayor que el pensado.\n";
}
else
{
print "El numero introducido es menor que el pensado.\n";
}En lugar de if podemos usar unless que tiene el significado contrario.
Dentro de los esquemas iterativos tenemos:
- while (EXP) BLOQUE . Mientras se cumpla la condición EXP se ejecutará todo lo que haya en bloque. Un ejemplo podría ser: print " PENSANDO UN NUMERO ....\n";
$numero = rand(100);
$entrada = $numero+1;
while ($entrada > $numero)
{
print " Introduce un numero del 1 al 100, menor que el pensado:";
$entrada = <STDIN>;
if($entrada > $numero)
{
print "El numero introducido es mayor que el pensado.\n";
}
}
print " EL NUMERO PENSADO ERA:",$numero;
print "\n";En lugar de while podemos usar until, que tiene el efecto contrario a éste. Si además queremos hacer la primera comparación después de la primera iteración, podemos usar un esquema iterativo do BLOQUE until o do BLOQUE while.
- for (EXP;EXP;EXP), su uso es exactamente igual que en C; un ejemplo de uso sería: print "IMPRIMIENDO DEL 1 al 100:\n";
getc;
for($i=1;$i<101;$i++)
{
print $i."\n";
}Y por último tenemos:
- foreach VAR (ARRAY) BLOQUE, con este esquema vamos obteniendo cada uno de los valores que contiene ARRAY y los vamos depositando en la variable VAR. Un ejemplo podría ser: @frutas=("manzana","pera","naranja","fresa");
foreach $fruta (@frutas)
{
print $fruta."\n";
}