【问题标题】:perl foreach looping arrays, simple questionperl foreach 循环数组,简单的问题
【发布时间】:2011-05-08 09:32:21
【问题描述】:
非常简单的 perl 问题,但让我很困惑。
foreach $val (@{$obj->something()}) {
# 这行得通
}
@array = $obj->something();
foreach $val (@array) {
# 这不是
}
我需要做些什么来完成第二项工作(即:单独分配数组),我已经使用了第一种形式,但并不真正了解它的不同之处。
【问题讨论】:
标签:
arrays
perl
loops
for-loop
【解决方案1】:
大概:
@array = @{$obj->something()};
从第一个示例来看,$obj->something() 返回一个数组引用,您需要取消引用它。
另外,你真的应该use strict; 和use warnings;,并像这样声明你的变量
my @array = @{$obj->something()};
foreach my $val (@array) {
# this does not
}
这将更容易发现错误(尽管可能不是这个),即使在三行脚本中也是如此。