Est-il possible de définir des sous-programmes anonymes dans un constructeur de hachage en Perl?Est-il possible de définir des sous-programmes anonymes dans un constructeur de hachage en Perl?
Je suis en train de faire quelque chose comme ceci:
my %array = { one => sub { print "first $_[0]" },
two => sub { print "next $_[0]" },
three => sub { print "last $_[0]" }};
$array{$foo}->('thing');
Mais il ne fonctionne pas. Le code semble s'exécuter et compiler, mais les valeurs dans le tableau sont vides. Si je fais ceci:
my %array;
$array{'one'} = sub { print "first $_[0]" };
$array{'two'} = sub { print "next $_[0]" };
$array{'three'} = sub { print "last $_[0]" };
$array{$foo}->('thing');
Ensuite, il semble bien fonctionner. Donc, j'ai une solution de contournement, mais cela ne fait que m'embêter et je me demandais si quelqu'un sait si c'est possible et, si oui, quelle est la syntaxe.
En Perl, ils sont appelés des hachages, et non des tableaux associatifs. – gpojd
Désolé ... Je pense que l'édition du livre de chameaux que j'ai appris s'appelait les tableaux associatifs. Ma faute. –