web stats
Featured image of post Introducción a Perl - 4

Introducción a Perl - 4

Vamos con la cuarta parte de este bloque. Aquí veremos qué son, y como tratar con condicionales y bucles.

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:

  • Initialize
  • Test
  • Step
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';
comments powered by Disqus
Creado con Hugo-Extended & theme Stack