Rutas
/
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 suele cargar con la palabra clave use. Esto lo carga y, además, llama a su método import, importando los símbolos exportados.

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

Exportación

Para que un símbolo se importe, antes debe exportarse. El módulo Exporter se incluye con Perl y es una de las opciones más cómodas 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 principales

Además de Exporter, Perl tiene una gran variedad de módulos principales disponibles. Algunos ejemplos útiles para los ejercicios que puedes encontrar aquí son List::Util, Time::Piece y Math::BigRat.

CPAN

Además de los módulos principales, 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 planificador de citas para un salón de belleza.

Tienes tres tareas, y todas ellas estarán relacionadas con las fechas de las citas.

1. Comprobar si una cita ya ha pasado

Implementa la subrutina appointment_has_passed, que recibe un string con una fecha y comprueba 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 formato de fecha y hora ISO 8601: YYYY-mm-ddTHH:MM:SS

Tendrás que implementar la subrutina privada _parse_datetime. Se te sugieren un par de módulos:

2. Comprobar si la cita es por la tarde

Implementa la función is_afternoon_appointment, que recibe un string con una fecha y comprueba si la cita es por la tarde (>= 12:00 y < 18:00):

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

3. Describir la hora y la fecha de la cita

Implementa la función describe_appointment, que recibe un string con una 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 en que la hora está en el rango 0-12 y no lleva un cero ni un espacio a la izquierda.

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

¿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.