Perl – Módulo, subrotina e ponteiro

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
Captura de tela no formato webm convertido a gif animado
  • 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.

Leave a comment