最近、自分のコードでPerl::Criticをもっと頻繁に使い始めることにしました。Perl でのプログラミングを 7 年近く行った後、私は長い間、ほとんどの Perl のベスト プラクティスに慣れてきましたが、常に改善の余地があることを知っています。しかし、私を悩ませていることの 1 つは、Perl::Criticがサブルーチン用に @_ をアンパックする方法を気に入らないという事実です。例として:
sub my_way_to_unpack {
my $variable1 = shift @_;
my $variable2 = shift @_;
my $result = $variable1 + $variable2;
return $result;
}
これは私が常に行ってきた方法であり、PerlMonks と Stack Overflow の両方で議論されているように、必ずしも悪いことでもありません。
上記のコード スニペットを次のように変更すると...
sub perl_critics_way_to_unpack {
my ($variable1, $variable2) = @_;
my $result = $variable1 + $variable2;
return $result;
}
...も機能しますが、読みにくいと思います。また、Damian Conway の著書Perl Best Practicesも読んだことがありますが、 Perl::Critic@_
が暗示しているように、直接使用を避けるという彼の提案に、私の推奨する展開方法がどのように該当するのか、よくわかりません。私は常に、コンウェイが次のような意地悪について話しているという印象を受けてきました。
sub not_unpacking {
my $result = $_[0] + $_[1];
return $result;
}
上記の例は下手で読みにくいので、私はこれを製品コードに書くことを考えたことはありません。
要するに、なぜPerl::Criticは私の好みのやり方が悪いと考えるのですか? シフトを使って開梱する私は本当に凶悪な犯罪を犯していますか?
これは、私以外の人がPerl::Criticのメンテナーと共に育てるべきだと考えるものでしょうか?