Tracks
/
Perl
Perl
/
Ejercicios
/
Reservas para el salón de belleza
Reservas para el salón de belleza

Reservas para el salón de belleza

Ejercicio de aprendizaje

Introducción

Paquetes y módulos

Importación

Un módulo se carga normalmente con la palabra clave use. Esto lo carga y además llama a su método import, importando cualquier símbolo exportado.

Los símbolos del array @EXPORT del paquete se importan de forma predeterminada. Los símbolos del array @EXPORT_OK del paquete se deben importar de forma explícita.

Exportación

Para que un símbolo se pueda importar, primero se debe exportar. El módulo Exporter viene incluido con Perl y es una de las opciones más convenientes para exportar.

Definir el módulo:

package Foo;

use Exporter ('import');
our @EXPORT_OK = ('bar');

sub bar { ... }

Usar el módulo:

use Foo ('bar');

bar();

Módulos del núcleo

Junto con Exporter, Perl tiene una gran variedad de módulos del núcleo disponibles para usar. Algunos ejemplos útiles para los ejercicios que puedes encontrar aquí incluyen List::Util, Time::Piece y Math::BigRat.

CPAN

Además de los módulos del núcleo, CPAN tiene miles de módulos adicionales creados por la comunidad de Perl disponibles para instalar. El track de Perl usa un cpanfile para instalar una selección de módulos que se pueden usar con el test runner de Perl de Exercism.

Instrucciones

En este ejercicio vas a trabajar en un sistema para agendar citas de un salón de belleza.

Tienes tres tareas, y todas tendrán que ver con las fechas de las citas.

1. Verifica si una cita ya pasó

Implementa la subrutina appointment_has_passed, que recibe un string de fecha y verifica si la cita fue en algún momento del pasado:

appointment_has_passed("2019-07-25T13:45:00")
// => true

Los strings de fecha se pasarán en el formato de fecha y hora ISO 8601: YYYY-mm-ddTHH:MM:SS

Tendrás que implementar la subrutina privada _parse_datetime. Te sugerimos un par de módulos:

2. Verifica si la cita es en la tarde

Implementa la función is_afternoon_appointment, que recibe un string de fecha y verifica si la cita es en la tarde (>= 12:00 y < 18:00):

is_afternoon_appointment("2019-07-25T13:45:00")
// => true

3. Describe la hora y la fecha de la cita

Implementa la función describe_appointment, que recibe un string de fecha y devuelve una descripción de esa fecha y hora:

describe_appointment("2019-07-25T13:45:00")
// => "You have an appointment on 07/25/2019 1:45 PM"

Fíjate que la hora está en el rango de 0 a 12 y no tiene un cero ni un espacio a la izquierda.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Perl Exercism

¿Todo listo para empezar Reservas para el salón de belleza?

Regístrate en Exercism para aprender y dominar Perl con 5 conceptos84 ejercicios y mentoría humana real, todo gratis.