gpt4 book ai didi

Perl:模板工具包的替代品

转载 作者:行者123 更新时间:2023-12-03 15:08:47 25 4
gpt4 key购买 nike

3 多年来,我一直在使用模板工具包来扩展现有的领域特定语言(verilog)。虽然总体上我对此很满意,但主要的问题是,当出现语法/未定义错误时,错误消息不包含用于调试错误的正确行号信息。

例如我会收到一条消息,指示“0 未定义”,因为我将在文件中的多个位置使用 [%x.0%] 和类似的构造,找出哪一行有问题变得困难。

TT3似乎无限期地在开发中

我对大师的问题是有没有更好的 TT 替代品。我的要求是

  • 支持复杂的数据结构
  • 良好的错误报告和调试功能。
  • 稳定且经过验证(无 alpha/beta 级引擎)
  • 可扩展(插件等)
  • 不应限于给定的语言(html 等)
  • 支持 IF/Else、循环(foreach while)、循环索引等
  • 最好是 perl
  • 支持模板内的数据转储程序或等效插件是一个加分项
  • 最佳答案

    我只能推荐 Text::Xslate这里。它在各方面都比 TT 好,并且也击败了大部分竞争对手。最后,它符合您的所有要求。字面上地。他们都。

    它甚至在实践中得到了证明,因为它被全局前 100 名网站之一和日本前 10 名网站之一使用:Livedoor

    Xslate 与 TT 相比:

  • 更快的启动
  • 更快的处理
  • 默认严格模式
  • 更高级的严格模式可以捕获不只是“var is undef”的不一致情况
  • 显示准确模板位置的详细错误
  • 自动 HTML 实体转义(XSS 安全)
  • actively maintained而不仅仅是 left to languish
  • 语法是直截了当的现代 perl


  • 对于您的特殊情况,需要注意两件事:
  • 当您从 TT 移植时,您可能希望通过 syntax => 'TTerse'到构造函数以获得设计为尽可能接近 TT 的语法。
  • 生成非HTML时,要传递type => 'text'到构造函数禁用 html_escape插值。
  • 关于Perl:模板工具包的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14236318/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com