Normalmente, um módulo é carregado com a palavra-chave use.
Isto carrega o módulo e chama o método import, importando quaisquer símbolos exportados.
Os símbolos no array @EXPORT do pacote são importados por predefinição.
Os símbolos no array @EXPORT_OK do pacote têm de ser importados explicitamente.
Para que um símbolo seja importado, primeiro tem de ser exportado. O módulo Exporter vem incluído com o Perl e é uma das opções mais convenientes para exportar.
Definição do módulo:
package Foo;
use Exporter ('import');
our @EXPORT_OK = ('bar');
sub bar { ... }
Utilização do módulo:
use Foo ('bar');
bar();
Além do Exporter, o Perl tem uma grande variedade de módulos principais disponíveis para usar. Alguns exemplos úteis para exercícios que podes encontrar aqui incluem o List::Util, o Time::Piece e o 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. O percurso 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 vais trabalhar num agendador de marcações para um salão de beleza.
Tens três tarefas, todas elas relacionadas com datas de marcações.
Implementa a sub-rotina appointment_has_passed, que recebe uma string de data e verifica se a marcação já ficou no passado:
appointment_has_passed("2019-07-25T13:45:00")
// => true
As strings de data são passadas no formato de data e hora ISO 8601: YYYY-mm-ddTHH:MM:SS
Vais precisar de implementar a sub-rotina privada _parse_datetime.
Sugerimos-te um par de módulos:
Implementa a função is_afternoon_appointment, que recebe uma string de data e verifica se a marcação é à tarde (>= 12:00 e < 18:00):
is_afternoon_appointment("2019-07-25T13:45:00")
// => true
Implementa a função describe_appointment, que recebe uma string de data e devolve uma descrição dessa data e dessa hora:
describe_appointment("2019-07-25T13:45:00")
// => "You have an appointment on 07/25/2019 1:45 PM"
Repara que a hora está no intervalo 0-12 e não tem zero à esquerda nem espaço.
Inscreve-te no Exercism para aprenderes e dominares Perl com 5 conceitos84 exercícios, e mentoria humana real, tudo grátis.