我需要创建一个将传递给类的多维数组。
下面是示例代码,我可以在类之外引用数组元素,但是一旦我创建了一个类并传递了多维数组,我就无法在类中引用它。
输出:
我的数组值= 3
在test.pl第18行使用“strict refs”时,不能使用字符串(“1”)作为ARRAY参考。
package TestClass;
use strict;
sub new
{
my $class = shift;
my $self =
{
_array => shift
};
bless $self, $class;
return $self;
}
sub print
{
my ($self) = @_;
print "TestClass variable = " . @{$self->{_array}->[0]}[1] . "\n";
}
my @my_array = ();
push(@my_array, [1,2]);
push(@my_array, [3,4]);
print "My Array Value = " . @{@my_array->[1]}[0] . "\n";
my $class = new TestClass(@my_array);
$class->print;
1;
答案 0 :(得分:4)
您将带有两个元素的列表传递给构造函数,每个元素都是您构建的数组引用之一。
我相信你想传递一个包含另外两个匿名数组引用的数组引用:
TestClass->new(\@my_array);
@{@my_array->[1]}[0]
中的数组解引用也有点奇怪。这是use warnings;
会抓住的东西。