6. Subrotinas e Módulos em PERL


Em PERL, é possível encapsular e modularizar funcionalidades através da construção de subrotinas e módulos.

Subrotinas

Uma subrotina é o equivalente a uma função em C. Declara-se usando a instrução sub seguida do nome da rotina, dos parâmetros de entrada (opcional) e do respectivo bloco de código. Por exemplo, a rotina seguinte :

sub quad {

$oper = @_;

$oper * $oper;

}

A rotina acima calcula o quadrado do valor que lhe foi passado como primeiro parâmetro na invocação. Quaisquer parametros em excesso na invocação não são aproveitados na implementação e quaisquer parãmetros em falta farão com que as variáveis locais fiquem vazias (0 ou "").

Uma rotina devolve o valor da ultima operação que for executada. Caso se queira devolver sempre o mesmo valor, deve-se escrever esse valor como última instrução da subrotina:

1;

É possível, no entanto, invocar a função return para sair da subrotina podendo a palavra return seguir-se do valor devolvido pela subrotina.

Módulos

Um módulo é um ficheiro com extensão .pm que contém um conjunto de subrotinas. Deve ser iniciado com a instrução package. Em seguida, incluem-se um conjunto de subrotinas e termina-se com a directiva 1;

Um módulo que contivesse a subrotina que aparece acima seria:

package aritmetica;

sub minha_rotina ($){

$oper = @_;

$oper * $oper;

}

1;

A inclusão de um módulo num script faz-se com a instrução use, como em:

use aritmética; #ATENCAO: não se escreve a extensão .pm

A invocação de subrotinas de um módulo faz-se escrevendo <nome do módulo>::<nome da subrotina>(parametros).

No caso que temos vindo a seguir nesta página, teriamos:

$resultado = aritmetica::quad(50); #atribuicao de 2500 a $resultado


Comentários à página devem ser enviados para João Garcia, preferencialmente com o tema: manual_perl.