できればグーグルで検索したいのですが、正直なところ、何を検索すればよいかわかりません (シンボルを多用する言語に固有の問題です)。
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
私の推測では、それ$aSvnPair
は 4 つの値の配列であり (この場合、変数の名前は非常に不適切です!)、これは特定の変数 ID に分割しているだけです...?
それはリストの割り当てにすぎません。RHS の最初の値は、LHS の最初の変数に割り当てられます。つまり
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
と同じです
$aSvnRemote = $aSvnPair->[0];
$aSvnLocal = $aSvnPair->[1];
$aSvnRef = $aSvnPair->[2];
$aSvnOptions = $aSvnPair->[3];
変数$aSvnPair
は配列への参照です。シジルを追加する@
と、配列が参照されます。この例では、配列がアンパックされ、その要素が右側の変数に割り当てられます。
何が起こっているかの例を次に示します。
$aSvnPair= [ qw(foo bar baz xyxxy) ];
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
この操作の後、次のようになります。
$aSvnRemote = "foo";
$aSvnLocal = "bar";
$aSvnRef = "baz";
$aSvnOptions = "xyxxy";
$aSvnPair
配列への参照である必要があるため、配列@{$aSvnPair}
を逆参照します。(「参照」は Perl のポインターに相当します。)
このステートメントは、この配列の値を左側の 4 つの変数に順番に割り当てます。
いくつかの例については、このチュートリアルを参照してください: Perl での逆参照