Ciclos de Controlo:"If..else" e "If..elsif.." em Perl

E aqui vem o mais um artigo relativo ao perl. Neste artigo vou-vos ensinar a utilizar um dos ciclos de controlo mais utilizados em programação que é o ciclo “if..else” e sua forma complexa “if..elsif”.
Este ciclo serve para controlar o fluxo de dados de um programa, no sentido de que se uma condição for verdadeira vai realizar uma acção e se for falsa vai realizar outra.

O ciclo “if..else” divide-se em duas partes
if (condição) {
  #bloco de código1
} else {
  #bloco de código2
}

Como podem ver tem uma estrutura muito simples. Mas para facilitar a vossa compreensão de como isto funciona vou explicar passo a passo o que está neste exemplo.

if (condição) {
  #na primeira linha inicio o ciclo if dizendo que tem que verificar a condição que está entre "()", caso esta condição
  #seja verdadeira, irá ser #executado o bloco de código1
} else {
  #caso seja falso irá executar o bloco de código2

A primeira vez pode ser um pouco complicado. Mas agora vou dar um exemplo prático. Imaginem que que queremos fazer um script que analise um valor introduzido e diga se é negativo ou positivo. Para tal fazemos o seguinte.

#!/usr/bin/perl -w
use strict;
print "Introduza um númeron";
chomp(my $val = <STDIN>);
if($val > 0) {
  print "número é positivon";
} else {
  print "número é negativon";
}

Nesta situação utilizamos o if para verificar se o número é positivo ou negativo. E agora vocês perguntam-se então e se tivermos mais do que 2 condições para analisar ou então neste programa de ver se é positivo ou negativo como fazemos se o número for 0.
Bem para lidar com essas situações temos uma derivação do ciclo If que é o “if .. elsif”. A sua estrutura de trabalho é bastante parecida ao ciclo if simples, só que neste caso temos 2 ou mais condições para verificar. De seguida fica a estrutura de um ciclo “if..elsif”.

if (condição) {
#na primeira linha inicio o ciclo if dizendo que tem que verificar a condição que está entre **()** caso esta condição
#seja verdadeira , irá ser #executado o bloco de código1
  #bloco de código1
}elsif(condição){ #caso a primeira condição não seja verdade o ciclo irá verificar a segunda condição.
  #bloco de código2
}else{#por fim caso nenhuma destas condições sejam verdadeiras então irá executar o bloco de código 3
  #bloco de código3
}

Como podem ver  este tipo de estrutura oferece um controlo de dados um pouco mais complexa. Como não poderia de deixar de fazer vou deixar um exemplo prático deste ciclo. E como tal vou pegar no programa anterior e irei usar este ciclo para verificar se o valor introduzido é 0.

#!/usr/bin/perl -w
use strict;
print "Introduza um númeron";
chomp(my $val = <STDIN>);
if ($val > 0) {
  print "número é positivon";
} elsif($val < 0) {
  print "número é negativon";
}else{
  print "o valor é nulo";
}