PHP サブルーチンを見てみましょう。
private function writeOutput($msg, $type) {
echo date("H\:i\:s") . " - [$type] . > $msg\n";
}
まず、Perl には組み込みの日付フォーマッタがありません。代わりに、モジュールを使用して日付を処理する必要があります。$msg
また、関数でとという 2 つのパラメーターを使用しています$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
変数を宣言してローカライズする whichの使用に注意してくださいmy
(PHP には実際にはありません)。すべての Perl プログラムで常にuse strict;
andを使用する必要があります。use warnings;
次に、すべての変数を で宣言するmy
必要があります。
Perl では、変数の標準的な方法は、すべて小文字を使用し、区切り記号としてアンダースコアを使用することです。これは、Damian Conway によるPerl Best Practicesからの引用です。Conway のコーディング標準のすべてに同意するかもしれないし、同意しないかもしれませんが、標準の良いところの 1 つは、誰もが標準を使用しているため、好きかどうかに関係なく、他の人のコードとの連携が非常に快適になることです。