不能使用字符串(" 1")作为ARRAY参考,而#34;严格参考"正在使用

时间:2016-07-08 13:03:39

标签: arrays perl

我的perl代码行位于

之下
my @contracts = ();
my @hash = ($c,$t);

这些值是动态填充的

push(@contracts,@hash);

现在我迭代了这个数组并获取了像

这样的值
for my $row (@contracts) {
    for my $value (@ {$row}) {
        my $abc_ref = shift;
        JSinfo("$abc_ref->[0]");
    }
}

任何帮助/意见将不胜感激。

1 个答案:

答案 0 :(得分:4)

这里有各种各样的错误。你为什么使用shift?你为什么要调用数组@hash$row不是数组引用,就像执行push时一样,您只需将@hash数组的元素附加到@contracts上,它会完全展平为{1}}长名单。

您希望将哪些内容发送到JSinfo()?如果是$c,您可以尝试:

use warnings;
use strict;

my ($c, $t) = qw(x y);

my @contracts;
my @list = ($c,$t);

# take a reference to the @list array, and push it
# to the @contracts array

push @contracts, \@list;

for my $row (@contracts){

    # row is an array reference, and we pass its
    # first element to JSinfo()

    JSinfo($row->[0]);
}