Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl自定义运行时格式_Perl_Time_Output - Fatal编程技术网

Perl自定义运行时格式

Perl自定义运行时格式,perl,time,output,Perl,Time,Output,我有一个问题,这是我放弃之前的最后手段,我是Perl的新手,我已经接近了互联网搜索解决方案的终点 ***我没有安装任何东西的权限,因此它必须是Perl5的本机 我有一个脚本,需要计算脚本的总运行时间,并以存储在变量中的00.00“分.秒”输出结果 以下是失败的尝试: #!/usr/bin/perl use Time::Piece; use POSIX qw(strftime); my $start = localtime->strftime($unixtime); sleep(10);

我有一个问题,这是我放弃之前的最后手段,我是Perl的新手,我已经接近了互联网搜索解决方案的终点

***我没有安装任何东西的权限,因此它必须是Perl5的本机

我有一个脚本,需要计算脚本的总运行时间,并以存储在变量中的00.00“分.秒”输出结果

以下是失败的尝试:

#!/usr/bin/perl
use Time::Piece;
use POSIX qw(strftime);

my $start = localtime->strftime($unixtime);
sleep(10);
my $end = localtime->strftime($unixtime);
my $diff = $end - $start;
my $runtime = printf("%M.%S", $diff);
print $runtime;
我确实玩了一点,结果得到了“10”秒,但这不是正确的格式。如果脚本运行10秒,则输出应为“00.10”

如果脚本运行1分55秒,则输出应为“01.55”

有什么办法可以做到这一点吗?
我搜索了这篇文章,发现了1篇文章,但都不接近。。。参考:

这应该可以做到:

#!/usr/bin/perl
use Time::Piece;

my $start = localtime;
sleep(10);
my $end = localtime;
my $diff = $end - $start;
my $minutes = int $diff->minutes;
my $seconds = $diff->seconds % 60;
my $output = sprintf '%02d.%02d', $minutes, $seconds;
print "$output\n";

不需要时间:一块

my $start = time;
sleep(10);
my $end = time;
my $diff = $end - $start;
my $runtime = sprintf '%d:%02d', int($diff / 60), $diff % 60;
print "$runtime\n";

非常感谢你,大卫!我知道我已经很接近了,但我知道的还不够多,我想关于%02d的事情会把它带到小数点!好。我真的很抱歉我以前的帖子。我真的认为你需要指标。这并不是为CPAN模块做广告的廉价尝试。