如果可以,我会谷歌它,但说实话,我不知道要搜索什么(符号重的语言的固有问题)!
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
Run Code Online (Sandbox Code Playgroud)
我的猜测是这$aSvnPair
是一个包含4个值的数组(在这种情况下,它是一个命名非常差的变量!)而这只是将它分成特定的变量身份......?
ike*_*ami 10
它只不过是一个列表赋值.RHS的第一个值分配给LHS的第一个var,依此类推.这意味着
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
Run Code Online (Sandbox Code Playgroud)
是相同的
$aSvnRemote = $aSvnPair->[0];
$aSvnLocal = $aSvnPair->[1];
$aSvnRef = $aSvnPair->[2];
$aSvnOptions = $aSvnPair->[3];
Run Code Online (Sandbox Code Playgroud)
该变量$aSvnPair
是对数组的引用.添加@
sigil会导致引用数组.在此示例中,数组已解包,并且其元素已分配给右侧的变量.
这是一个正在发生的事情的例子:
$aSvnPair= [ qw(foo bar baz xyxxy) ];
($aSvnRemote, $aSvnLocal, $aSvnRef, $aSvnOptions) = @{$aSvnPair};
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您将获得以下内容:
$aSvnRemote = "foo";
$aSvnLocal = "bar";
$aSvnRef = "baz";
$aSvnOptions = "xyxxy";
Run Code Online (Sandbox Code Playgroud)