Para resumir os posts Subrotina e Módulo, Subrotinas e passagem de parâmetros, e Passagem de argumentos por referência, vejamos o seguinte exemplo.
- Design-time
Listagem 1 – programa principal
#!/usr/bin/perl
use warnings;
use strict;
use module1;
my ($p, $a);
print "Informe preco atual: ";
chomp($p = <>);
print "Informe reajuste (%): ";
chomp($a = <>);
module1::reajustar(\$p, \$a);
print "Preco novo: \t $p \n";
print "Aumento: \t $a \n";
Listagem 2 – módulo contendo a subrotina
package module1;
use warnings;
use strict;
sub reajustar{
${$_[1]} = ${$_[0]} * ${$_[1]}/100;
${$_[0]} += ${$_[1]};
}
1;
- Runtime
- Sintaxe
Em relação aos posts anteriores citados, desta vez foi solicitado o valor do reajuste (nas linhas 11 e 12 da listagem 1), que foi utilizado na subrotina localizada no módulo – ver linhas 6 e 7 da listagem 2.
Antes de rodar o programa é necessário “instalar o módulo” da seguinte forma:
export PERL5LIB=~/Documentos/perl_files
Observe que ainda não foi tratada a exceção de não se digitar números para informar preço e reajuste. Que tal encarar essa tarefa desafiante?
- Reflexão
Uma longa caminhada começa com o primeiro passo. Em seguida, basta não parar definitivamente até se chegar ao destino sonhado.