Perl | Múltiplas sub-rotinas
Pré-requisito: Perl | Sub-rotinas ou funções
Uma função ou sub-rotina Perl é um grupo de instruções que, juntas, executam uma tarefa específica. Em cada linguagem de programação o usuário deseja reutilizar o código. Assim, o usuário coloca a seção de código em função ou sub-rotina para que não haja necessidade de escrever código repetidamente.
Em Perl, os termos função, sub-rotina e método são os mesmos, mas em algumas linguagens de programação, eles são considerados diferentes. As sub-rotinas de palavras são mais usadas na programação Perl porque são criadas usando a palavra-chave sub. Sempre que há uma chamada para a função, Perl para de executar todo o seu programa e salta para a função para executá-la e então retorna para a seção do código que estava executando anteriormente. Pode-se evitar o uso da instrução return.
Definindo sub-rotinas:
A forma geral de definir a sub-rotina em Perl é a seguinte-
sub subroutine_name { # body of method or subroutine }
Em Perl, um programa pode conter várias sub-rotinas com o mesmo nome sem gerar um erro, porque Perl permite escrever várias sub-rotinas com o mesmo nome, a menos que tenham assinaturas diferentes . Isso pode ser definido usando aridades diferentes para cada sub-rotina com o mesmo nome.
Arity de uma sub- rotina : as sub-rotinas Perl podem ter o mesmo nome, a menos que tenham um conjunto diferente de Arity. Arity se refere ao número de argumentos que uma sub-rotina contém. Esses argumentos podem ou não ser de tipos de dados diferentes. Enquanto a aridade das sub-rotinas for diferente, o programa Perl não gerará nenhum erro.
Uso da palavra-chave 'multi':
Múltiplas sub-rotinas em Perl podem ser criadas usando a palavra-chave 'multi'. Isso ajuda na criação de várias sub-rotinas com o mesmo nome.
Exemplo:
multi Func1($var){statement}; multi Func1($var1, $var2){statement1; statement2;}
O uso de múltiplas sub-rotinas é muito comum na criação de funções embutidas e a maioria dos operadores em uma linguagem de programação como Perl. Isso ajuda a reduzir a complexidade do programa, não usando nomes diferentes para todas as outras sub-rotinas. Qualquer que seja a instrução de código necessária, basta passar o número de argumentos necessários para aquela função e o trabalho estará feito. Nesse caso, o compilador escolherá a versão da sub-rotina cuja assinatura da Função corresponda à chamada para execução.
Vários programas como fatorial de um número, série de Fibonacci, etc. requerem mais de uma função para resolver o problema. O uso de múltiplas sub-rotinas ajudará a reduzir a complexidade de tais programas.
Exemplo 1: Soma das séries de Fibonacci.
#!/usr/bin/perl
# Program to print sum of fibonacci series
# Function for $n = 0
multi Fibonacci_func(0)
{
1; # returning 1
}
# Function for $n = 1
multi Fibonacci_func(1)
{
1; # returning 1
}
# Recursive function to calculate Sum
multi Fibonacci_func(Int $n where $n > 1)
{
Fibonacci_func($n - 2) +
Fibonacci_func($n - 1);
}
# Printing the sum
# using Function Call
print Fibonacci_func(17);
Saída:
2584
O exemplo acima usa várias sub - rotinas para calcular a Soma das Séries de Fibonacci.
Exemplo 2: fatorial de um número
#!/usr/bin/perl
# Program to print factorial of a number
# Factorial of 0
multi Factorial(0)
{
1; # returning 1
}
# Recursive Function
# to calculate Factorial
multi Factorial(Int $n where $n > 0)
{
$n * Factorial($n - 1); # Recursive Call
}
# Printing the result
# using Function Call
print Factorial(15);
Saída:
3628800
Nos exemplos fornecidos acima, o programa usa a palavra-chave 'multi' para declarar várias sub-rotinas com o mesmo nome, mas com aridade diferente.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva