【问题标题】:How can I pass Twig sub parameter?如何传递 Twig 子参数?
【发布时间】:2011-05-30 17:56:50
【问题描述】:

帮助我无法将哈希键传递给 twig 子例程。

这里:

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

    }
}

谢谢。

【问题讨论】:

    标签: perl twig


    【解决方案1】:

    看起来你正在尝试 curry insert 但 Perl 并不直接支持它。相反,您可以使用匿名 sub 为 insert 构建正确的参数列表:

    'Id' => sub { insert($_[0], $_[1], $keywords{$word}) }
    

    【讨论】:

    • 通常我用@_写这个:sub { insert(@_, $keywords{$word}); }
    • @mirod:这也行,但我想明确一点,以便在几周后让自己更容易; @_ 的 2 元素切片也可以。 OTOH,如果$keywords{$word} 先走,我会说sub { insert($keywords{$word}, @_) }
    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2021-03-22
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多