Uma função, método ou subrotina é um grupo de declarações que juntas executam uma tarefa específica. Podem estar dentro de um programa ou dentro de um módulo.
Um módulo é um conjunto ou uma coleção de subrotinas e variáveis relacionadas em um arquivo de biblioteca. É projetado especificamente para ser reutilizável por outros módulos ou programas.
- Design-time I
O programa mudaNome1.pl localizado em \wsl.localhost\Ubuntu\home\lcmoura\Documentos\perl_files\subroutine contém uma subrotina.
#!/usr/bin/perl
use warnings;
use strict;
my $nome;
print "Insira o nome: ";
chomp($nome = <>);
print "Oi, ". $nome . "!\n";
print "Novo nome: ". &pessoa . "\n";
sub pessoa{
$nome = $nome . ' de Tal';
}
- Design-time II
O programa mudaNome2.pl localizado em \wsl.localhost\Ubuntu\home\lcmoura\Documentos\perl_files\subroutine utiliza uma subrotina externa, situada no módulo Mensagem.pm.
#!/usr/bin/perl
use warnings;
use strict;
use modules::Mensagem;
my $nome;
print "Insira o nome: ";
chomp($nome = <>);
print "Oi, ". $nome . "!\n";
$Mensagem::username = $nome;
print "Novo nome: ". Mensagem::pessoa() . "\n";
O módulo Mensagem.pm localizado em \wsl.localhost\Ubuntu\home\lcmoura\Documentos\perl_files\modules contém a subrotina utilizada pelo programa mudaNome2.pl.
package Mensagem;
$username;
sub pessoa{
$username = $username . ' de Tal';
}
1;
- Runtime
- Sintaxe
No primeiro design, a subrotina pessoa foi chamada com a instrução no formato &nome_da_subrotina na linha 12, embora o formato nome_da_subrotina() seja melhor mesmo não havendo argumentos (que seriam colocados entre os parênteses). Esta opção foi usada no segundo design com o formato nome_do_módulo :: nome_da_subrotina() ilustrado na linha 15.
Para rodar o programa do segundo design, mudaNome2.pl, é necessário antes indicar o caminho ou localização da pasta que contém o(s) módulo(s) com a seguinte instrução no shell:
export PERL5LIB=path
Neste caso, para a pasta modules path=/home/lcmoura/Documentos/perl_files.
Observe que o nome do módulo deve ter o seguinte formato: nome_do_módulo.pm e o módulo deve conter a instrução
package nome_do_módulo; (ver linha 1 do módulo)
e ser finalizada com a instrução
1; (ver linha 9 do módulo). Este é o valor de retorno do módulo, e que poderia ser qualquer outro valor verdadeiro em Perl.
Dúvidas?
- Reflexão
Em Psicologia, o termo florescer equivale ao processo de se tornar o melhor de si, que envolve emoções positivas, engajamento, relacionamentos, significado e realização. Que tal fazer o seguinte teste da escala florescente?
Seguem oito afirmações com as quais você pode concordar ou discordar. Usando a seguinte escala de 1 a 7, forneça uma resposta para cada afirmação.
7 – Concordo plenamente
6 – Concordo
5 – Concordo um pouco
4 – Nem concordo nem discordo
3 – Discordo um pouco
2 – Discordo
1 – Discordo totalmente
___ Eu levo uma vida com propósito e significado.
___ Meus relacionamentos sociais são favoráveis e gratificantes.
___ Estou engajado e interessado em minhas atividades diárias.
___ Contribuo ativamente para a felicidade e o bem-estar dos outros.
___ Sou competente e capaz nas atividades que são importantes para mim.
___ Sou uma boa pessoa e vivo uma boa vida.
___ Estou otimista em relação ao meu futuro.
___ As pessoas me respeitam.
Pontuação:
Some as respostas, variando de 1 a 7, para todos os oito itens. O intervalo possível de pontuações é de 8 (o mais baixo possível) a 56 (o mais alto possível). Uma pontuação alta indica uma pessoa com muitos recursos e pontos fortes psicológicos.