使用模板工具包检索已过滤的文件列表

时间:2015-06-08 20:52:54

标签: perl template-toolkit

我想要检索目录中的文件内容,这些内容符合给定的正则表达式规则或字符串(例如 ./*。xml )。

我找到了以下示例

[% FOREACH directory.files.grep('\.txt$') %]
   ...
[% END %]

但不知道如何使用它。这可以解决我的问题吗?

1 个答案:

答案 0 :(得分:2)

快速查看文档表明directory.files的输出是对象的集合,因此.grep()不太可能起作用。它有nameisdir等方法。

最简单的解决方案是:

[%- FOREACH file IN directory.files;
        #NEXT UNLESS file.name.match('\.xml$');
        NEXT UNLESS file.ext == 'xml';
        ...
    END -%]

修改:根据ThisSuitIsBlackNot的建议改进了答案。