Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在一条语句中取消对数组中的数组的引用?_Arrays_Perl_Multidimensional Array_Dereference - Fatal编程技术网

Arrays 在一条语句中取消对数组中的数组的引用?

Arrays 在一条语句中取消对数组中的数组的引用?,arrays,perl,multidimensional-array,dereference,Arrays,Perl,Multidimensional Array,Dereference,可以在一个语句中执行第2行和第3行吗 我试过@arr2=@$arr1[0]但它不会编译。由于优先规则,您必须添加大括号 @arr1 = ([1,2,3], 4, 5, 6); $arr_ref = $arr1[0]; @arr2 = @$arr_ref; 从 说到像@{$AoA[$i]} […] 这是因为Perl在其五个前缀解引用器(看起来像有人在咒骂:$@*%&)上的优先级规则使它们比后缀的下标括号或大括号绑定得更紧 这意味着,如果不需要显式索引,那么就不需要{},例如在已经检索数组元素的

可以在一个语句中执行第2行和第3行吗


我试过
@arr2=@$arr1[0]但它不会编译。

由于优先规则,您必须添加大括号

@arr1 = ([1,2,3], 4, 5, 6);
$arr_ref = $arr1[0];
@arr2 = @$arr_ref;

说到像
@{$AoA[$i]}

[…]
这是因为Perl在其五个前缀解引用器(看起来像有人在咒骂:
$
@
*
%
&
)上的优先级规则使它们比后缀的下标括号或大括号绑定得更紧


这意味着,如果不需要显式索引,那么就不需要
{}
,例如在已经检索数组元素的代码中。例如,要展平包含arrayrefs的数组,请单击per的注释

@arr2 = @{$arr1[0]};

要仅检索arrayrefs的内容,可以在块内的三元运算符中使用
:()
而不是
:$。
()
返回一个空列表,该列表在结果中变平,因此不会影响它。(当条件计算为false时,必须返回一些内容。此技巧允许
map
执行
grep
的工作,有效地进行过滤。)

由于优先规则,您必须添加大括号

@arr1 = ([1,2,3], 4, 5, 6);
$arr_ref = $arr1[0];
@arr2 = @$arr_ref;

说到像
@{$AoA[$i]}

[…]
这是因为Perl在其五个前缀解引用器(看起来像有人在咒骂:
$
@
*
%
&
)上的优先级规则使它们比后缀的下标括号或大括号绑定得更紧


这意味着,如果不需要显式索引,那么就不需要
{}
,例如在已经检索数组元素的代码中。例如,要展平包含arrayrefs的数组,请单击per的注释

@arr2 = @{$arr1[0]};

要仅检索arrayrefs的内容,可以在块内的三元运算符中使用
:()
而不是
:$。
()
返回一个空列表,该列表在结果中变平,因此不会影响它。(当条件计算为false时,必须返回一些内容。此技巧允许
map
执行
grep
的工作,有效地进行过滤。)

仅语法--
{$arr1[0]}
仅语法--
{$arr1[0]}
还有
map
@arr2=map{ref$\ueq“ARRAY”?@$\uu1@Sobrique Nice,避免显式索引,因此没有优先级问题。这会让整个事情变得平淡,不是吗?(这是很有用的!)对于这个问题,也许是
:()
而不是
:$是的,它把它展平了
()
可以工作,但它会丢弃该元素,这可能是所需的,也可能不是所需的@Sobrique Nice,避免显式索引,因此没有优先级问题。这会让整个事情变得平淡,不是吗?(这是很有用的!)对于这个问题,也许是
:()
而不是
:$是的,它把它展平了<代码>()
可以工作,但它会丢弃该元素,这可能是所需的,也可能不是所需的。