不安装额外软件如何获取毫秒级时间?

11

如何在Perl中获取毫秒级时间而不安装任何额外的包?

我正在运行Linux操作系统。


3
date +%N 可以获取纳秒级别的时间,你可以从这里入手。而 %s 则是自 1970 年以来经过的秒数。 - Konerak
5
你为什么不能使用Time::HiRes - Polynomial
3
为什么无法安装模块?不过,根据你使用的 Perl 版本,可能已经有 Time::HiRes(http://perldoc.perl.org/Time/HiRes.html)可用。 - user554546
"date +%N" 在 Linux 上可以运行,但在 AIX 上不行...(难过的一天) - Jess
1个回答

22

Time::HiRes 自 Perl 5.7.3 版本以来一直是核心的一部分。要检查其可用性,请检查 Perl 版本 perl -v,或尝试从命令行使用 perl -e 'use Time::HiRes;'

示例用法:

use Time::HiRes qw/ time sleep /;

my $start = time;
sleep rand(10)/3;
my $end   = time;

print 'Slept for ', ( $end - $start ) , "\n";

借鉴Konerak的评论,如果它不存在或者不能使用,可以通过反引号使用本地Linux命令:

sub time_since_epoch { return `date +%s.%N` }

print time_since_epoch;

要从命令行加载和/或验证模块,您可以使用:perl -MTime::HiRes -e 1代替:perl -e 'use Time::HiRes' - JRFerguson
@mob:感谢您的纠正。@James_R_Ferguson:我故意省略了“-M”标志,因为我不想用语法混淆提问者(使用“1”而不是“''”是一个巧妙的小技巧:)。 - Zaid
@Zaid 谢谢!调用时间函数返回的是毫秒值吗? - JJ Liu
@JJLiu:它是自1970年1月1日(也称为纪元)以来的秒数。 - Zaid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接