Condicionais

Declarações condicionais permitem que você mude o fluxo do seu código. Declarações condicionais operam com os valores Booleanos que você aprendeu anteriormente, e incluem if/else/elsif e unless.

Quando o resultado de uma expressão entre parênteses é verdadeiro, o bloco entre chaves é executado:

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

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

Quando também quiser fazer algo sempre que a expressão for falsa, basta usar else:

if (0) {
    say 'Verdadeiro';
}
else {
    say 'Falso';
}

Quando quiser testar várias expressões em sequência, use elsif:

my $x = 1;

if ($x == 0) {
    say 'x é zero';
} elsif ($x < 0) {
    say 'x é menor que zero';
} else {
    say 'x é maior que zero';
}

Há também uma forma mais curta para declarações com if:

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

O unless é o oposto do if, que executa o bloco quando a expressão é avaliada como falsa.

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

Que é a mesma coisa que escrever:

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

Como você sabe, em Perl os valores verdade são tudo que não é avaliado como zero, então a comparação com 0 normalmente pode ser omitida:

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

Exercício

Corrija o código abaixo para que exiba 'Olá' em vez de Até logo' usando operadores lógicos e sem mudar o valor de $x.

my $x = 0;

if ($x) {
    say 'Olá';
}
else {
    say 'Até logo';
}