我需要一个高效的 commify 过滤器或例程与 Template::Toolkit 一起使用。它要在页面上多次使用。它应该支持小数。

这是在 The Perl Cookbook 中找到的:

sub commify {
    my $text = reverse $_[0];
    $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
    return scalar reverse $text;
}

有没有更有效的方法?

最佳答案

在尝试优化任何东西之前,请确保它实际上是一个问题。使用分析器查找代码中的问题区域并专注于这些区域。

该 commify 解决方案与您所能获得的一样好,但如果您需要绕过它,您还可以做其他事情:

  • 如果您重复提交相同的数字,请使用类似 Memoize 的东西来缓存结果
  • 如果它们不太可能改变,则预先计算所有数字。
  • 缓存已处理的模板
  • 在您的网络服务器上使用反向代理设置,将繁重的处理工作交给后端服务器。
  • 关于perl - 我怎样才能改进这个 commify 例程以提高速度?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2206591/

    10-09 03:14