@array = reverse;
and
@array = reverse $_;
どちらも異なります。 @array = reverse
は暗黙的に$_
を使用しません。 $_
を明示的に宣言しなければなりません。これは、デフォルトでは$_
が使用されていない非常に奇妙なケースです。バグですか?
@array = reverse;
and
@array = reverse $_;
どちらも異なります。 @array = reverse
は暗黙的に$_
を使用しません。 $_
を明示的に宣言しなければなりません。これは、デフォルトでは$_
が使用されていない非常に奇妙なケースです。バグですか?
reverse documentationからわかる限り、reverse
は配列に作用するので、スカラーではなく@_
を使用する必要があります$_
?
ドキュメントは「reverse()
は$_
を反転させ、スカラーコンテキストで引数なしで使用。」と言います[強調を追加]
$_ = "dlrow ,olleH";
print reverse; # No output, list context
print scalar reverse; # Hello, world
公式文書には、Perlの仕様が記載されています。もしPerlがそれがすべきことを言うならば、それはバグではありません。これは言語設計と実装の決定です。
考えてみてください。 1つのアイテムを含むリストを逆にすると、何が得られますか? – Schwern