J'ai le code de test suivanttableau Perl et la manipulation de hachage en utilisant la carte
use Data::Dumper;
my $hash = {
foo => 'bar',
os => 'linux'
};
my @keys = qw (foo os);
my $extra = 'test';
my @final_array = (map {$hash->{$_}} @keys,$extra);
print Dumper \@final_array;
La sortie est
$VAR1 = [
'bar',
'linux',
undef
];
Si pas les éléments être "bar, linux, test"? Pourquoi le dernier élément est-il indéfini et comment insérer un élément dans @final_array? Je sais que je peux utiliser la fonction push, mais est-il possible de l'insérer sur la même ligne que la commande map?
Fondamentalement, le tableau manipulé est destiné à être utilisé dans une commande SQL dans le script réel et je veux éviter d'utiliser des variables supplémentaires avant que et au lieu de faire quelque chose comme:
$sql->execute(map {$hash->{$_}} @keys,$extra);