Как я могу передать подпараметр Twig? - PullRequest
0 голосов
/ 26 декабря 2010

Помогите Я не могу передать свой хэш-ключ подпрограмме ветки.

здесь:

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

    }
}

Спасибо.

1 Ответ

1 голос
/ 26 декабря 2010

Похоже, вы пытаетесь карри insert, но Perl не поддерживает это напрямую. Вместо этого вы можете использовать анонимную подпрограмму для создания правильного списка аргументов для insert:

'Id' => sub { insert($_[0], $_[1], $keywords{$word}) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...