Funzione time() in Perl

Nel linguaggio di programmazione Perl ci sono built-in funzione di time(). Questa funzione restituisce un numero intero numero di secondi con l'inizio di un'epoca. Quasi tutti i moderni sistemi l'inizio dell'epoca — è zero secondi, zero minuti, ore zero del primo gennaio 1970 il fuso orario UTC (1970-01-01T00:00:00Z). Questo numero è spesso chiamato timestamp.

Ecco un esempio di lavoro con questa funzione:

▶ Run
#!/usr/bin/perl

print time();

Al momento della stesura di questo programma ha il numero di 1577113985, che corrisponde alla data di 2019-12-23T15:13:05Z.

Argomenti

Funzione time() non accetta argomenti. Se si tenta di darle un argomento, quello è un errore:

▶ Run
#!/usr/bin/perl

print time(8);

Ecco la conclusione:

syntax error at script.pl line 3, near "(8"
Execution of script.pl aborted due to compilation errors.

Precisione

Funzione time() (lei stessa CORE::time()) restituisce il numero di secondi interi con l'inizio dell'epoca. Se la precisione al secondo non è sufficiente, è possibile utilizzare la funzione Time::HiRes::time(), che restituisce un float numero di numero di secondi con l'inizio dell'epoca.

Il programma di esempio che mostra l'utilizzo di queste due funzioni:

▶ Run
#!/usr/bin/perl

use feature qw(say);

use Time::HiRes;

say time();
say Time::HiRes::time();

Un esempio di output:

1577116390
1577116390.36876

La documentazione ufficiale di

Ecco l'output del comando perldoc -f time:

       time    Returns the number of non-leap seconds since whatever time the
               system considers to be the epoch, suitable for feeding to
               "gmtime" and "localtime".  On most systems the epoch is
               00:00:00 UTC, January 1, 1970; a prominent exception being Mac
               OS Classic which uses 00:00:00, January 1, 1904 in the current
               local time zone for its epoch.

               For measuring time in better granularity than one second, use
               the Time::HiRes module from Perl 5.8 onwards (or from CPAN
               before then), or, if you have gettimeofday(2), you may be able
               to use the "syscall" interface of Perl.  See perlfaq8 for
               details.

               For date and time processing look at the many related modules
               on CPAN.  For a comprehensive date and time representation look
               at the DateTime module.

Altri articoli