Sentències condicionals

Les sentències condicionals us permeten canviar el flux del codi. Les sentències condicionals operen amb els valors booleans que heu après al capítol anterior i inclouen if/else/elsif i unless.

Quan el resultat d'una expressió entre parèntesis és cert, el bloc de codi envoltat de claus s'avalua:

if (1 == 1) {
    say 'cert';
}

if (1 == 0) {
    say 'fals';
}

Si voleu fer quelcom quan l'expressió sigui falsa podeu utilitzar else:

if (0) {
    say 'cert';
}
else {
    say 'fals';
}

Si voleu avaluar de nou l'expressió, podeu utilitzar elsif:

my $x = 1;

if ($x == 0) {
    say 'x és zero';
} elsif ($x < 0) {
    say 'x és menys que zero';
} else {
    say 'x és més que zero';
}

També hi ha una forma breu per la sentència if:

my $x = 5;
say 'cert' if $x > 0;

unless és el contrari d'if, on és el valor fals el que determina si el bloc s'executa, i no el cert.

my $x = 5;
say 'cert' unless $x == 0;

Això és el mateix que:

my $x = 5;
say 'cert' if !($x == 0);

Com ja sabeu, a Perl els valors certs són tot allò que no és zero, així que la comparació amb 0 normalment no és necessària:

my $x = 5;
say 'cert' unless $x;

Exercici

Corregiu aquest codi per tal que imprimeixi 'Hola' en comptes d''Adéu' utilitzant operadors lògics i sense canviar el valor d'$x.

my $x = 0;

if ($x) {
    say 'Hola';
}
else {
    say 'Adéu';
}