Boa noite,
1. Tenho algumas funções (sub) que são comuns a mais de um aplicativo.
Qual a forma mais simples, prática e elegante de compartilha-las entre
vários scripts, sendo que todos ficam no mesmo diretório? Hoje, tenho
o mesmo código repetido dentro do arquivo de cada script.
A melhor forma na minha opinião seria criar um modulo com as funções ou
métodos comuns para serem usados por todos os scripts do seu projeto.
(estou assumindo que não esta usando orientação a objetos)
http://perldoc.perl.org/Exporter.html
2. Tenho algumas funções (sub) que precisam retornar mais de uma
informação, as vezes até 5. Hoje como não sei fazer isso,
declaro variáveis no inicio do script e antes de chamar a sub, atribuo
"undef" para as variáveis. Dentro da sub eu atribuo os valores que
preciso a elas e depois da sub eu leio essas variáveis. Não me causa
problema, só acho estranho e pouco elegante. Exemplo de retorno: Se
deu erro (1 ou 0), Registro que deu erro (numérico), Descrição do Erro
(string), Se conseguiu cancelar do IPBX (1 ou 0).
Pode criar uma classe e retorná-la com as propriedades preenchidas
conforme a sua necessidade...
http://perldoc.perl.org/perlootut.html
3. Declaro as funções (sub) assim:
sub NomeDaSub {
my ($NomeDoPrimeiroParametro, ..., $NomeDoUltimoParametro)=@_;
}
Está certo? Ou tem uma técnica "mais" correta?
A declaração esta correta mas como boa prática "geralmente" não se usa
PascalCase || UpperCamelCase para os nomes das subs... geralmente são
usadas palavras separadas por underline (mas isso não é regra).
sub nome_da_sub {
my ($primeiro_param, $segundo_param, ... ) = @_;
...
}
nome_da_sub('Parâmetro 1', 'Parâmetro 2', ... );
Espero ter ajudado!
[]'s
--
*Daniel Vinciguerra*
Web Solutions Architect and Co-Owner at Bivee
http://github.com/dvinciguerra
=begin disclaimer
Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer