Question

Help I can't pass my hash key to twig subroutine.

here:

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( );   

    }
}

Thanks.

Was it helpful?

Solution

Looks like you're trying to curry insert but Perl doesn't directly support that. Instead, you can use an anonymous sub to build the proper argument list for insert:

'Id' => sub { insert($_[0], $_[1], $keywords{$word}) }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top