Funktion time() i Perl

I programmeringssproget Perl har en indbygget funktion time(). Denne funktion returnerer en integer — antallet af sekunder siden begyndelsen af den æra. Næsten alle moderne systemer starttidspunktet er nul sekunder, nul minutter, nul timer på den første januar 1970 i tidszonen UTC (1970-01-01T00:00:00Z). Dette nummer kaldes ofte timestamp.

Her er et eksempel på brug af denne funktion:

▶ Run
#!/usr/bin/perl

print time();

På tidspunktet for dette skrives, har programmet bragt antallet 1577113985, der svarer til den dato, 2019-12-23T15:13:05Z.

Argumenter

Funktion time() ikke accepterer argumenter. Hvis du forsøger at give hende et argument, vil det fejl:

▶ Run
#!/usr/bin/perl

print time(8);

Her er resultatet:

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

Præcision

Funktion time() (aka CORE::time()) returnerer antallet af hele sekunder siden begyndelsen af den æra. Hvis nøjagtighed til anden er ikke nok, du kan bruge funktion Time::HiRes::time(), som returnerer antallet af float antal af sekunder siden begyndelsen af den æra.

Eksempel-program, som viser anvendelsen af to af disse funktioner:

▶ Run
#!/usr/bin/perl

use feature qw(say);

use Time::HiRes;

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

Eksempel på output:

1577116390
1577116390.36876

Officiel dokumentation

Her er outputtet af kommandoen 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.

Andre artikler