我需要在Perl中使用一些字符串替换来简化翻译,即替换很多
print "Outputting " . $n . " numbers";
通过类似的东西
printf ("Outputting %d numbers",$n);
但是,我想用更容易为人类解析的东西替换printf,如下所示:
printX ("Outputting {num} numbers",{ num => $n });
或者更普遍的东西.
你能推荐一些你喜欢和使用的东西(无论是否来自CPAN)?
解决方法
CPAN上的大多数模板模块可能会做你想要的.这是一个使用
Template Toolkit的例子……
use Template; my $tt = Template->new; $tt->process( \"Outputting [% num %] numbers\n",{ num => 100 } );
你可以用这样的东西模仿你所需的例子……
sub printX { use Template; my $tt = Template->new( START_TAG => '{',END_TAG => '}' ); $tt->process( \( $_[0] . "\n" ),$_[1] ); }
你有……
printX 'Outputting {num} numbers' => { num => 100 };