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.
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();
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.
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.
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.
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:
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
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.
Iscriviti a Exercism per imparare e padroneggiare Perl con 5 concetti84 esercizi e il mentoring di persone reali, tutto gratis.