加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 我可以在模板文件中填充dist-zilla填充任意字段吗?

发布时间:2020-12-16 06:17:31 所属栏目:大数据 来源:网络整理
导读:有没有办法在文件中有一个用户定义的参数,然后让dist.ini设置参数的值.例如,文件可能包含{{$THE_ANSWER}},而dist.ini文件会提供类似THE_ANSWER = 42的值?我很高兴使用dist :: zilla来处理perl发行版,而我在理解它如何将文件视为模板时遇到了问题.似乎只有几
有没有办法在文件中有一个用户定义的参数,然后让dist.ini设置参数的值.例如,文件可能包含{{$THE_ANSWER}},而dist.ini文件会提供类似THE_ANSWER = 42的值?我很高兴使用dist :: zilla来处理perl发行版,而我在理解它如何将文件视为模板时遇到了问题.似乎只有几个硬编码参数,可以通过插件改变,可以用于任何文件.一个这样的参数是由[NextRelease]在Changes文件中提供的{{$NEXT}}变量.

我阅读了教程并在CPAN上搜索了模块,无法确定这是否可行.使用[GenerateFile]插件将整个文件放在dist.ini文件中是不可接受的解决方法.除了缺乏灵活性和简单的丑陋之外,似乎不可能通过这种方式添加具有领先白色空间的线条.

解决方法

我要做的是使用存储或插件来存储变量. Stashes就像插件一样,但它们除了存储数据之外什么都不做,它们可以放在你的全局配置和dist.ini中.

[%Vars]
favorite_pie = pumpkin

然后你就可以这样对待他们:

$zilla->stash_named('%Vars')->favorite_pie

这假设你已经制作了Dist :: Zilla :: Stash :: Vars并给它一个favorite_pie属性.

但是,你可以制作一个完全通用的存储,它接受任何东西作为关键.为此,我将查看Dist :: Zilla :: Plugin :: Prereqs的源代码,它允许任意配置选项并将其推入其BUILDSARGS方法的哈希属性中.

您可以制作Dist :: Zilla :: Stash :: Generic,然后根据需要多次注册,原因各不相同:

[%Generic / Pies]
favorite  = pumpkin
hated     = rhubarb
firstever = quince

[%Generic / Passwords]
pause  = PeasAreDelicious
google = secret
reddit = SecretPeasAreDelicious

…然后,根据需要,在模板中说…

{{ $zilla->stash_named('Passwords')->get_var('pause' }}

如果我制作了大量使用这种泛型的文件,我会在Text :: Template实例中传递一个名为get_password的闭包,如下所示:

get_password => sub { $zilla->stash_named('Passwords')->get_var($_[0]) }

然后您的模板可能包括:

Login with: {{ get_password("pause") }}

这个答案显然会留给你一些消息来源,但我认为应该指出我用来做你想做的所有事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读