私たちが使用している Perl ツールへの提案されたベンダー提供のパッチを検討していますが、特定のタイプの変更 (サブルーチンに渡されたパラメーターへの「@」の前保留) の理由を特定するのに苦労しています。
たとえば、次のような行です。
my ($genfd) = @_;
今でしょ:
my ($genfd) = @@_;
Perl 開発者ではないので、外出先で学習していますが、これまでのところ、'@_'が外側のサブルーチンに提供されるパラメーターであることを理解しています。
また、上記の割り当て (「$genfd」が左側の括弧で囲まれている場所) が「@_」をリストにキャストし、「genfd」スカラー変数をそのリストの最初の要素に割り当てることも理解しています。これにより、サブルーチンへの最初のパラメーターが「genfd」に格納されます。
私が完全に立ち往生しているのは、2番目の「@」がどのような違いを生むかです。GitHub でこの使用例を見つけましたが、説明はありません。また、Perl のリファレンスや SO に関する説明も見つかりません。どんな助けでも大歓迎です。