Introducción a Perl - 4
if
Se usa para declarar condicionales, las cuales se utilizan para comprobar si una condición dada se cumple o no. En caso de que se cumpla, se continúa leyendo y ejecutando el script. Si no se cumple la condición, se salta el bloque.
Se puede interpretar como: «Si esto se cumple, haz esto«
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
print "Dime un numero mayor que 0: ";
$respuesta = <>;
if ($respuesta <= 0)
{
print "el numero es igual o menor que 0.";
exit;
}
print "Has indicado el numero $respuesta";
c:\Temp>perl perl.pl
Dime un numero mayor que 0: 4
Has indicado el numero 4
c:\Temp>perl perl.pl
Dime un numero mayor que 0: 0
el numero es igual o menor que 0.
c:\Temp>
|
if y else
Se puede interpretar como: «Si esto se cumple, haz esto. Si no se cumple, haz esto otro»
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
print "Dime un numero mayor que 0: ";
$respuesta = <>;
if ($respuesta <= 0)
{
print "ERROR: el numero es igual o menor que 0.\n";
exit;
}
else
{
print "OK: el numero es mayor que 0.\n";
}
print "Has indicado el numero $respuesta";
c:\Temp>perl perl.pl
Dime un numero mayor que 0: 0
ERROR: el numero es igual o menor que 0.
c:\Temp>perl perl.pl
Dime un numero mayor que 0: 6
OK: el numero es mayor que 0.
Has indicado el numero 6
|
if, else y elsif
Se puede interpretar como: «Si esto se cumple, haz esto. Si no se cumple pero se cumple esto, haz esto. Si tampoco se cumple, haz esto.»
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
print "Dime un numero entre 0 y 50: ";
$respuesta = <>;
if ($respuesta <= 0)
{
print "ERROR: el numero es igual o menor que 0.\n";
exit;
}
elsif ($respuesta > 50)
{
print "ERROR: el numero es mayor de 50.\n";
}
else
{
print "OK: el numero es mayor que 0 y menor que 50.\n";
}
print "Has indicado el numero $respuesta";
c:\Temp>perl perl.pl
Dime un numero entre 0 y 50: 0
ERROR: el numero es igual o menor que 0.
c:\Temp>
c:\Temp>
c:\Temp>
c:\Temp>perl perl.pl
Dime un numero entre 0 y 50: 55
ERROR: el numero es mayor de 50.
Has indicado el numero 55
c:\Temp>
c:\Temp>
c:\Temp>perl perl.pl
Dime un numero entre 0 y 50: 15
OK: el numero es mayor que 0 y menor que 50.
Has indicado el numero 15
|
for
Se puede utilizar tanto for (estilo C), como foreach, ya que son sinónimos.
El bucle for tiene 3 partes en la sección de control:
1
2
3
|
for (INITIALIZE; TEST; STEP) {
BODY;
}
|
Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
for (my $i=0; $i <= 9; $i++) {
print "$i\n";
}
c:\Temp>perl perl.pl
0
1
2
3
4
5
6
7
8
9
c:\Temp>
|
Respecto al bucle foreach, se definiría de la siguiente forma:
1
2
3
|
foreach my $i (0..9) {
print "$i\n";
}
|
Se puede hacer un bucle infinito así:
1
2
3
|
for (;;) {
# hacer algo
}
|
Aunque es más normal utilizar while
1
|
while (1) { # hacer algo}
|
while
El bucle while es algo similar a for, pero en este caso se ejecuta mientras la condición sea verdadera.
1
2
3
4
5
6
7
|
my $counter = 0;
while ($counter < 20) {
print "$counter\n";
$counter += 2;
}
print 'done';
|