Trilhas
/
Perl
Perl
/
Exercícios
/
Agendamento no salão de beleza
Agendamento no salão de beleza

Agendamento no salão de beleza

Exercício de aprendizagem

Introdução

Pacotes e módulos

Importação

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.

Exportação

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();

Módulos principais

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.

CPAN

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.

Instruções

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.

1. Verifique se um agendamento já passou

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ê:

2. Verifique se o agendamento é à tarde

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

3. Descreva a hora e a data do agendamento

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.

Editar via GitHub O link abre em uma nova janela ou aba
Perl Exercism

Tudo pronto para começar Agendamento no salão de beleza?

Crie sua conta no Exercism para aprender e dominar Perl com 5 conceitos84 exercícios e mentoria humana de verdade, tudo de graça.