我會谷歌它,如果我可以但老實說我不知道要搜索什麼(與符號沉重的語言固有問題)!
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
我的猜測是$aSvnPair
是4個值(在這種情況下,這是一個非常糟糕命名變量!),這是剛剛拆分爲特定變量的身份數組...?
我會谷歌它,如果我可以但老實說我不知道要搜索什麼(與符號沉重的語言固有問題)!
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
我的猜測是$aSvnPair
是4個值(在這種情況下,這是一個非常糟糕命名變量!),這是剛剛拆分爲特定變量的身份數組...?
這只不過是一個列表分配更多。 RHS的第一個值被分配給LHS的第一個變量,依此類推。這意味着
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
相同
$aSvnRemote = $aSvnPair->[0];
$aSvnLocal = $aSvnPair->[1];
$aSvnRef = $aSvnPair->[2];
$aSvnOptions = $aSvnPair->[3];
$aSvnPair
應該是參考數組所以@{$aSvnPair}
取消引用它。 (一個「參考」是一個指針的Perl等價物。)
該語句然後按順序將該數組的值分配給左側的四個變量。
參見本教程的一些例子:Dereferencing in perl
可變$aSvnPair
是數組的引用。添加@
sigil會導致數組被引用。在這個例子中,數組是解壓縮的,它的元素被分配給右邊的變量。
這裏是正在發生的例子:
$aSvnPair= [ qw(foo bar baz xyxxy) ];
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
此操作後,您會收到以下:
$aSvnRemote = "foo";
$aSvnLocal = "bar";
$aSvnRef = "baz";
$aSvnOptions = "xyxxy";
'@ arr'或'@ {$裁判}',不要緊, 「發生了什麼」,否則。 – 2012-11-16 01:49:57