¿Cómo puedo pasar el parámetro secundario de la ramita?
Pregunta
Ayuda no puedo pasar mi clave hash en rama subrutina.
aquí:
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( );
}
}
Gracias.
Solución
Parece que están tratando de ganarse el insert
pero Perl no admite directamente eso. En su lugar, se puede utilizar un sub anónima para construir la lista de argumentos adecuada para insert
:
'Id' => sub { insert($_[0], $_[1], $keywords{$word}) }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow