【发布时间】:2010-12-17 01:55:13
【问题描述】:
我正在创建一个这样的新对象:
TestObject->new(@array1, @array2)
我的new 方法如下所示:
sub new {
my $class = shift;
my $self = {};
my $self->{Array1} = shift;
my $self->{Array2} = shift;
bless($self, $class);
return $self;
}
作为访问数据的简单测试,我正在尝试这个,然后一旦我开始工作,我就可以构建更有意义的逻辑:
sub mymethod {
my $self = shift;
my $param = shift;
my $array1Value = shift(my $self->{Array1});
my $array2Value = shift(my $self->{Array2});
print $array1Value." ".$array2Value;
}
但是当我打电话给mymethod 时,我得到了这个错误:
Type of arg 1 to shift must be array (not hash element) at Tests/MyObject.pm line 21, near "})"
建议?我读过this page on Perl data structures,但他们没有使用shift 方法的参数创建数组散列的示例。所以我的问题可能就在那里。
【问题讨论】:
-
这到底是什么?
shift(my $self->{Array1})
标签: perl arrays data-structures hash