Funktion time() in Perl

In der Programmiersprache Perl gibt es die eingebaute Funktion time(). Diese Funktion gibt eine Ganzzahl zurück — Anzahl der Sekunden Beginn der Epoche. Auf fast allen modernen Systemen der Beginn der Epoche ist null Sekunden, null Minuten, null Uhr des ersten Januar 1970 in der Zeitzone UTC (1970-01-01T00:00:00Z). Diese Zahl wird oft als timestamp.

Hier ist ein Beispiel für die Arbeit mit dieser Funktion:

▶ Run
#!/usr/bin/perl

print time();

Zum Zeitpunkt des Schreibens dieses Artikels das Programm hat die Zahl der 1577113985, das entspricht dem Datum 2019-12-23T15:13:05Z.

Argumente

Funktion time() akzeptiert keine Argumente. Wenn Sie versuchen, übergeben Sie dem argument, dann wird der Fehler:

▶ Run
#!/usr/bin/perl

print time(8);

Hier ist die Ausgabe:

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

Präzision

Funktion time() (auch CORE::time()) liefert die Anzahl ganzer Sekunden mit dem Beginn der ära. Wenn Präzision bis auf die Sekunde nicht ausreichend ist, können Sie Funktion Time::HiRes::time(), die den float-Zahl die Anzahl der Sekunden mit dem Beginn der ära.

Das Beispielprogramm zeigt die Verwendung dieser beiden Funktionen:

▶ Run
#!/usr/bin/perl

use feature qw(say);

use Time::HiRes;

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

Ein Beispiel für die Ausgabe:

1577116390
1577116390.36876

Die offizielle Dokumentation

Hier ist die Ausgabe des Befehls 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.

Andere Artikel