A tomada de decisão na programação é semelhante à tomada de decisão na vida real. Na programação, um determinado bloco de código precisa ser executado quando alguma condição é satisfeita. Uma linguagem de programação usa instruções de controle para controlar o fluxo de execução do programa com base em certas condições. Eles são usados ​​para fazer com que o fluxo de execução avance e se ramifique com base nas alterações no estado de um programa.
 

Declarações de tomada de decisão em Perl:

declaração if

A instrução if é a mesma que em outras linguagens de programação. Ele é usado para realizar tarefas baseadas em condições básicas. É usado para decidir se uma determinada instrução ou bloco de instruções será executado ou não, ou seja, se uma determinada condição for verdadeira, um bloco de instruções será executado, caso contrário, não.
Sintaxe:

if(condition)
{    
     # code to be executed    
}  

Nota: Se as chaves {} não forem usadas com instruções if, haverá erro no tempo de compilação. Portanto, é necessário usar os colchetes {} com a instrução if.
Fluxograma:
 

Exemplo : 

# Perl program to illustrate if statement
 
$a = 10;
 
# if condition to check
# for even number
if($a % 2 == 0 )
{
    printf "Even Number";
}

Saída : 

Even Number

declaração if - else

A instrução if avalia o código se a condição for verdadeira, mas e se a condição não for verdadeira, aqui vem a instrução else. Diz ao código o que fazer quando a condição if for falsa.
Sintaxe:

if(condition)
{  
      # code if condition is true  
}
else
{  
      # code if condition is false  
}  

Fluxograma:
 

Exemplo : 

# Perl program to illustrate
# if - else statement
 
$a = 21;
 
# if condition to check
# for even number
if($a % 2 == 0 )
{
    printf "Even Number";
}
else
{  
    printf "Odd Number\n";
}

Saída : 

Odd Number

Aninhada - declaração if

A instrução if dentro de uma instrução if é conhecida como if aninhada. A instrução if, neste caso, é o alvo de outra instrução if ou else. Quando mais de uma condição precisa ser verdadeira e uma das condições é a subcondição da condição pai, aninhada se pode ser usada.
Sintaxe: 

if (condition1) 
{
   # Executes when condition1 is true

   if (condition2) 
   {
      # Executes when condition2 is true
   }
}

Fluxograma: 
 

Exemplo : 

# Perl program to illustrate
# Nested if statement
 
$a = 10;
   
if($a % 2 ==0)
{
     # Nested - if statement
     # Will only be executed
     # if above if statement
     # is true
    if($a % 5 == 0)
    { 
         printf "Number is divisible by 2 and 5\n"; 
     }
}

Saída : 

Number is divisible by 2 and 5

Instrução da escada If - elsif - else

Aqui, um usuário pode decidir entre várias opções. As instruções if são executadas de cima para baixo. Assim que uma das condições que controlam o if for verdadeira, a instrução associada a ela será executada e o resto da escada será contornado. Se nenhuma das condições for verdadeira, a instrução else final será executada.
Sintaxe: 

if(condition1)
{  
           # code to be executed if condition1 is true  
}
elsif(condition2)
{  
           # code to be executed if condition2 is true  
}  
elsif(condition3)
{  
           # code to be executed if condition3 is true  
}  
 ... 
else
{
           # code to be executed if all the conditions are false  
}  

Fluxograma: 
 

if-else-if

if-else-if

Exemplo :

# Perl program to illustrate
# if - elseif ladder statement
 
$i = 20; 
 
if($i == 10)
{
    printf "i is 10\n"; 
}
 
elsif($i == 15)
{
    printf "i is 15\n";
}
 
elsif($i == 20)
{
    printf "i is 20\n";
}
 
else
{
    printf "i is not present\n";
}

Saída : 

i is 20

a menos que declaração

Nesse caso, se a condição for falsa, as instruções serão executadas. O número 0, a string vazia “”, o caractere '0', a lista vazia() e undef são todos falsos em um contexto booleano e todos os outros valores são verdadeiros.
Sintaxe:

unless(boolean_expression) 
{
   # will execute if the given condition is false
}

Fluxograma: 

Exemplo : 

# Perl program to illustrate
# unless statement
 
$a = 10;
 
unless($a != 10)
{
 
    # if condition is false then
    # print the following
    printf "a is not equal to 10\n";
}

Saída : 

a is not equal to 10

Instrução a menos que o else

A menos que a instrução possa ser seguida por uma instrução else opcional, que é executada quando a expressão booleana é verdadeira.
Sintaxe:

unless(boolean_expression)
{
      # execute if the given condition is false
}
 
else 
{
      # execute if the given condition is true
}

Fluxograma: 
 

Exemplo : 

# Perl program to illustrate
# unless - else statement
 
$a = 10;
 
unless($a == 10)
{
 
    # if condition is false then
    # print the following
    printf "a is not equal to 10\n";
}
 
else
{
 
    # if condition is true then
    # print the following
    printf "a is equal to 10\n";
}

Saída :  

a is equal to 10

A menos - declaração elsif

A menos que a instrução possa ser seguida por uma instrução opcional elsif… else, que é muito útil para testar as várias condições usando a instrução única a menos que… elsif.
Pontos para lembrar : 

  • A menos que a instrução possa ter de zero a muitos elsif e tudo o que deve vir antes do else.
  • A menos que a instrução possa ter zero ou mais um e que deva vir depois de qualquer elsif.
  • Assim que um elsif for bem-sucedido, nenhum dos elsifs ou outros elsif restantes serão testados.

Sintaxe:

unless(boolean_expression 1) 
{
     # Executes when the boolean expression 1 is false
} 
elsif( boolean_expression 2)
{
     # Executes when the boolean expression 2 is true
}
else 
{
     # Executes when the none of the above condition is met
}

Fluxograma:
 

Exemplo : 

# Perl program to illustrate
# unless - elsif statement
$a = 50;
 
unless($a  ==  60)
{
 
   # if condition is false
   printf "a is not equal to 60\n";
}
elsif($a ==  60)
{  
    
   # if condition is true
   printf "a is equal to 60\n";
}
else
{ 
 
   # if none of the condition matches
   printf "The value of a is $a\n";
}
Saída
a não é igual a 60

Saída : 

a is not equal to 60