Parcours
/
Perl
Perl
/
Exercices
/
Prends rendez-vous pour la beauté
Prends rendez-vous pour la beauté

Prends rendez-vous pour la beauté

Exercice d'apprentissage

Introduction

Paquetages et modules

Importe

Un module se charge généralement avec le mot-clé use. Cela le charge et appelle sa méthode import, ce qui importe tous les symboles exportés.

Les symboles présents dans le tableau @EXPORT du paquetage sont importés par défaut. Ceux du tableau @EXPORT_OK doivent être importés explicitement.

Exporte

Pour qu'un symbole puisse être importé, il doit d'abord être exporté. Le module Exporter est fourni avec Perl et c'est l'une des options les plus pratiques pour exporter.

Définition du module :

package Foo;

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

sub bar { ... }

Utilisation du module :

use Foo ('bar');

bar();

Modules de base

En plus d'Exporter, Perl dispose d'une grande variété de modules de base que l'on peut utiliser. Quelques exemples utiles pour les exercices que tu pourrais rencontrer ici : List::Util, Time::Piece et Math::BigRat.

CPAN

En plus des modules de base, CPAN met à disposition des milliers de modules supplémentaires créés par la communauté Perl, prêts à être installés. Le parcours Perl utilise un cpanfile pour installer une sélection de modules utilisables avec l'exécuteur de tests Perl d'Exercism.

Instructions

Dans cet exercice, tu vas travailler sur un planificateur de rendez-vous pour un salon de beauté.

Tu as trois tâches, qui porteront toutes sur des dates de rendez-vous.

1. Vérifie si un rendez-vous est déjà passé

Implémente le sous-programme appointment_has_passed qui prend une chaîne de date et vérifie si le rendez-vous se situe quelque part dans le passé :

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

Les chaînes de date seront fournies au format ISO 8601 : YYYY-mm-ddTHH:MM:SS

Tu devras implémenter le sous-programme privé _parse_datetime. Deux modules te sont suggérés :

2. Vérifie si le rendez-vous a lieu l'après-midi

Implémente la fonction is_afternoon_appointment qui prend une chaîne de date et vérifie si le rendez-vous a lieu l'après-midi (>= 12:00 et < 18:00) :

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

3. Décris l'heure et la date du rendez-vous

Implémente la fonction describe_appointment qui prend une chaîne de date et renvoie une description de cette date et de cette heure :

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

Note que l'heure est comprise entre 0 et 12 et qu'elle n'a ni zéro ni espace en tête.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Perl Exercism

Prêt à commencer Prends rendez-vous pour la beauté ?

Inscris-toi sur Exercism pour apprendre et maîtriser Perl avec 5 concepts84 exercices, et un vrai mentorat humain, le tout gratuitement.