Comment puis-je passer le paramètre Brindille sous?
Question
Aide Je ne peux pas passer ma clé de hachage au sous-programme brindille.
ici
foreach my $word (sort { $keywords{$a} <=> $keywords{$b} } keys (%keywords)) {
my $t = XML::Twig->new( twig_roots => { 'Id' => \&insert($keywords{$word}) } );
$t->parse($docsums);
sub insert
{
my($t, $id, $k)= @_;
my $p = $id->text;
my $query = "insert into pres (id, wid, p) values(DEFAULT, '$k', '$p')";
my $sql = $connect->prepare($query);
$sql->execute( );
}
}
Merci.
La solution
On dirait que vous essayez de curry insert
mais Perl ne supporte pas directement que. Au lieu de cela, vous pouvez utiliser un sous-programme anonyme pour construire la liste des arguments approprié pour insert
:
'Id' => sub { insert($_[0], $_[1], $keywords{$word}) }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow