Track
/
Perl
Perl
/
Esercizi
/
Prenotazioni per la bellezza
Prenotazioni per la bellezza

Prenotazioni per la bellezza

Esercizio di apprendimento

Introduzione

Package e moduli

Importare

Un modulo viene di solito caricato con la parola chiave use. Questa lo carica e ne chiama il metodo import, importando tutti i simboli esportati.

I simboli nell'array @EXPORT del package vengono importati per impostazione predefinita. I simboli nell'array @EXPORT_OK del package devono invece essere importati esplicitamente.

Esportare

Perché un simbolo possa essere importato, deve prima essere esportato. Il modulo Exporter è incluso in Perl ed è una delle opzioni più comode per esportare.

Definizione del modulo:

package Foo;

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

sub bar { ... }

Utilizzo del modulo:

use Foo ('bar');

bar();

Moduli core

Oltre a Exporter, Perl mette a disposizione una grande varietà di moduli core. Alcuni esempi utili per gli esercizi che potresti incontrare qui sono List::Util, Time::Piece e Math::BigRat.

CPAN

Oltre ai moduli core, CPAN offre migliaia di moduli aggiuntivi creati dalla comunità Perl, pronti da installare. Il track Perl usa un cpanfile per installare una selezione di moduli utilizzabili con il test runner Perl di Exercism.

Istruzioni

In questo esercizio lavorerai a un sistema di pianificazione degli appuntamenti per un salone di bellezza.

Ci sono tre attività, tutte legate alle date degli appuntamenti.

1. Verifica se un appuntamento è già passato

Implementa la subroutine appointment_has_passed, che prende una stringa di data e verifica se l'appuntamento è avvenuto nel passato:

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

Le stringhe di data verranno passate nel formato ISO 8601 datetime: YYYY-mm-ddTHH:MM:SS

Dovrai implementare la subroutine privata _parse_datetime. Ti suggeriamo un paio di moduli:

2. Verifica se l'appuntamento è nel pomeriggio

Implementa la funzione is_afternoon_appointment, che prende una stringa di data e verifica se l'appuntamento è nel pomeriggio (>= 12:00 e < 18:00):

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

3. Descrivi l'ora e la data dell'appuntamento

Implementa la funzione describe_appointment, che prende una stringa di data e restituisce una descrizione di quella data e di quell'ora:

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

Nota che l'ora è nell'intervallo 0-12 e non ha né uno zero iniziale né uno spazio.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Perl Exercism

Vuoi iniziare Prenotazioni per la bellezza?

Iscriviti a Exercism per imparare e padroneggiare Perl con 5 concetti84 esercizi e il mentoring di persone reali, tutto gratis.