让我们看一下您的 PHP 子例程:
private function writeOutput($msg, $type) {
echo date("H\:i\:s") . " - [$type] . > $msg\n";
}
首先,Perl 没有内置的日期格式化程序。相反,您必须使用模块来处理日期。此外,您在名为$msg
and的函数中使用了两个参数$type
。Perl 在函数调用中不使用函数参数。相反,您使用shift
:
use Time::Piece; # A nice way to handle datetime. Included since Perl 5.10
use feature qw(say); # Better than `print`. Included since Perl 5.10
sub write_output {
my $msg = shift;
my $type = shift;
my $time = Time::Piece->new(localtime);
say $time->hms . " - [$type] . > $msg";
}
shift命令是获取函数输入参数的标准方式。Time::Piece是自 Perl 5.10 以来处理时间的标准 Perl 模块。这是一个面向对象的模块。->
类似于大多数其他语言中的点。根据当前时间my $time = Time::Piece->new(localtime);
创建一个新对象。Time::Piece
使用格式打印出时间$time->hms
的方法。hms
HH:MM:SS
注意my
which 声明和本地化变量的使用(PHP 没有真正拥有的东西)。您应该始终拥有use strict;
并use warnings;
在您的所有 Perl 程序上。然后,您必须使用my
.
请注意,在 Perl 中,变量的标准方式是使用全部小写并使用下划线作为分隔符。这取自Damian Conway 的Perl Best Practices。您可能同意也可能不同意 Conway 的所有编码标准,但标准的好处之一是每个人都使用它们,这使得与其他人的代码一起工作变得更好——无论您是否喜欢它们。