Я создаю новый объект, подобный этому:
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 "})"
Предложения? Я прочитал эту страницу о структурах данных Perl , но у них нет примеров создания хэшей массивов с использованием аргументов метода, использующего shift
Так что моя проблема может быть там.