Um módulo normalmente é carregado com a palavra-chave use.
Isso carrega o módulo e chama o método import dele, importando todos os símbolos exportados.
Os símbolos no array @EXPORT do pacote são importados por padrão.
Já os símbolos no array @EXPORT_OK do pacote precisam ser importados explicitamente.
Para que um símbolo seja importado, ele precisa primeiro ser exportado. O módulo Exporter vem incluído no Perl e é uma das opções mais práticas para exportar.
Definindo o módulo:
package Foo;
use Exporter ('import');
our @EXPORT_OK = ('bar');
sub bar { ... }
Usando o módulo:
use Foo ('bar');
bar();
Além do Exporter, o Perl tem uma grande variedade de módulos principais disponíveis para uso. Alguns exemplos úteis para os exercícios que você pode encontrar por aqui são List::Util, Time::Piece e Math::BigRat.
Além dos módulos principais, o CPAN tem milhares de módulos adicionais criados pela comunidade Perl disponíveis para instalação. A track de Perl usa um cpanfile para instalar uma seleção de módulos que podem ser usados com o test runner de Perl do Exercism.
Neste exercício, você vai trabalhar em um sistema de agendamento para um salão de beleza.
Você tem três tarefas, e todas elas envolvem datas de agendamento.
Implemente a sub-rotina appointment_has_passed, que recebe uma string de data e verifica se o agendamento aconteceu em algum momento no passado:
appointment_has_passed("2019-07-25T13:45:00")
// => true
As strings de data serão passadas no formato de data e hora ISO 8601: YYYY-mm-ddTHH:MM:SS
Você vai precisar implementar a sub-rotina privada _parse_datetime.
Alguns módulos são sugeridos para você:
Implemente a função is_afternoon_appointment, que recebe uma string de data e verifica se o agendamento é à tarde (>= 12:00 e < 18:00):
is_afternoon_appointment("2019-07-25T13:45:00")
// => true
Implemente a função describe_appointment, que recebe uma string de data e retorna uma descrição dessa data e hora:
describe_appointment("2019-07-25T13:45:00")
// => "You have an appointment on 07/25/2019 1:45 PM"
Repare que a hora está no intervalo de 0 a 12 e não tem zero à esquerda nem espaço.
Crie sua conta no Exercism para aprender e dominar Perl com 5 conceitos84 exercícios e mentoria humana de verdade, tudo de graça.