四个非常相同的正则表达式。我用以下标量值替换了字符串。如何提高效率?

$line =~ s/\[(receiver)\]/$receiver/g;
$line =~ s/\[(place)\]/$place/g;
$line =~ s/\[(position)\]/$position/g;
$line =~ s/\[(company)\]/$company/g;


谢谢。

最佳答案

考虑只使用真实的模板系统。例如,Template Toolkit非常简单。

抛开这些,您说您希望它更有效率。当前认为效率低下是一个问题吗?如果没有,就别管它了。

您可以一次完成所有操作:

my %subst = (
    'receiver' => $receiver,
    'place'    => $place,
    'position' => $position,
    'company'  => $company,
);
$line =~ s/\[(receiver|place|position|company)\]/$subst{$1}/g;


但是如果$receiver是'place',这将表现不同。

10-01 20:51
查看更多