【发布时间】:2022-01-22 07:34:30
【问题描述】:
我正在添加两个日期并尝试计算时间,但出现以下错误:
Error parsing time at /usr/local/lib/x86_64-linux-gnu/perl/5.30.0/Time/Piece.pm line 598.
我用 cpan 安装 Time::Piece:cpan Time::Piece。
这是我的代码:
our @months = qw( 01 02 03 04 05 06 07 08 09 10 11 12 );
our @days = qw(Domingo Segunda Treça Quarta Quinta Sexta Sabado Domingo);
($sec,$min,$hour,$mday,$mon,$year,$wday,$day,$isdst) = localtime();
our $ano = "2021";
our $day = "$mday";
our $mes = $months[$mon];
our $data = $mes."-".$day."-".$ano;
our $horario = $hour.":".$min.":".$sec;
our $horario2 = $hour.":".$min.":".$sec;
our $data1 = $ano."-".$mes."-".$day;
our $data2 = $day."/".$mes."/".$ano;
our $str1 = 'Execution completed at '.$data2.' '.$horario.' AM';
our @mes = qw( Jan Feb Mar APr May Jun Jul Agu Sep Oct Nov Dec );
our @days = qw(Domingo Segunda Treça Quarta Quinta Sexta Sabado Domingo);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$nomeMes = $mes[$mon];
our @mes = qw( Jan Feb Mar APr May Jun Jul Agu Sep Oct Nov Dec );
our @days = qw(Domingo Segunda Treça Quarta Quinta Sexta Sabado Domingo);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
our $data2 = $day."/".$mes."/".$ano;
our $horario = $hour.":".$min.":".$sec;
my $str2 = 'Execution completed at '.$data2.' '.$horario.' AM';
my @times = map Time::Piece->strptime(/(\d.+M)/, '%m/%d/%Y %H:%M:%S %p'), $str1, $str2;
my $delta = $times[1] - $times[0];
$tempo = $delta->pretty;
我做错了什么?我该怎么做才能使这个功能发挥作用?
【问题讨论】:
-
提示:所有
our都是错误的,应该是my。our用于需要在包外看到的变量。基本上,在使用 Exporter 时将our用于@EXPORT_OK和类似的,就是这样。 -
使用 Perl 5.30,您不需要安装 Time::Piece,它应该是 Perl 本身的一部分(除非您使用的发行版破坏了 Perl 包)。
-
总是使用
use strict; use warnings;!这会为您的代码列出一长串问题。 -
@ikegami... 我使用严格和警告,但没有收到有关 Time::Piece 的消息。
-
呃,你的代码甚至不能用
use strict; use warnings;编译。你是在嘲笑你只是忽略了它吐出的大量警告吗?