Je crée un nouvel objet comme celui-ci:Quelle est la syntaxe appropriée pour stocker un tableau dans un hachage Perl?
TestObject->new(@array1, @array2)
Ma méthode new
ressemble à ceci:
sub new {
my $class = shift;
my $self = {};
my $self->{Array1} = shift;
my $self->{Array2} = shift;
bless($self, $class);
return $self;
}
En tant que test simple pour accéder aux données, j'essaie cela, puis une fois que je le faire fonctionner, je peux construire une logique plus significative:
sub mymethod {
my $self = shift;
my $param = shift;
my $array1Value = shift(my $self->{Array1});
my $array2Value = shift(my $self->{Array2});
print $array1Value." ".$array2Value;
}
Mais quand je l'appelle mymethod
, je reçois cette erreur:
Type of arg 1 to shift must be array (not hash element) at Tests/MyObject.pm line 21, near "})"
Suggestions? J'ai lu this page on Perl data structures, mais ils n'ont pas d'exemples pour créer un hachage de tableaux en utilisant les arguments d'une méthode utilisant shift
. Donc, mon problème pourrait être là.
Qu'est-ce que c'est exactement? 'shift (mon $ self -> {Array1})' – innaM