Функция time() в Perl

В языке программирования Perl есть встроенная функция time(). Эта функция возвращает целое число — количество секунд с начала эпохи. Практически на всех современных системах начало эпохи — это ноль секунд, ноль минут, ноль часов первого января 1970 года в часовом поясе UTC (1970-01-01T00:00:00Z). Это число еще часто называют timestamp.

Вот пример работы с этой функцией:

▶ Run
#!/usr/bin/perl

print time();

В момент написания этой статьи программа вывела число 1577113985, что соответствует дате 2019-12-23T15:13:05Z.

Аргументы

Функция time() не принимает аргументы. Если попытаться передать ей аргумент, то будет ошибка:

▶ Run
#!/usr/bin/perl

print time(8);

Вот вывод:

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

Точность

Функция time() (она же CORE::time()) возвращает количество целых секунд с начала эпохи. Если точности до секунды недостаточно, то можно использовать функцию Time::HiRes::time(), которая возвращает float число количество секунд с начала эпохи.

Пример программы, которая показывает использование двух этих функций:

▶ Run
#!/usr/bin/perl

use feature qw(say);

use Time::HiRes;

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

Пример вывода:

1577116390
1577116390.36876

Официальная документация

Вот вывод команды 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.

Другие статьи