Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在安装perl模块时,如何运行配置脚本?_Perl - Fatal编程技术网

在安装perl模块时,如何运行配置脚本?

在安装perl模块时,如何运行配置脚本?,perl,Perl,我已经找了几个小时了,现在空空荡荡地想找到一个解决办法。我正在使用Dist::Zilla。我有一个模块,它使用位于模块的share/目录中的.ini格式的简单配置文件。安装模块后,我希望安装脚本提示用户输入配置选项,并将用户选项保存在配置文件中。然后,使用File::UserConfig,它将文件复制到用户的配置目录中,模块在运行时可以在该目录中加载该文件 有人建议使用该模块,但我对MakeMaker几乎一无所知,也不知道如何编写自定义模块来启动配置脚本 我很惊讶我找不到任何让这件事容易做的东西

我已经找了几个小时了,现在空空荡荡地想找到一个解决办法。我正在使用Dist::Zilla。我有一个模块,它使用位于模块的
share/
目录中的
.ini
格式的简单配置文件。安装模块后,我希望安装脚本提示用户输入配置选项,并将用户选项保存在配置文件中。然后,使用
File::UserConfig
,它将文件复制到用户的配置目录中,模块在运行时可以在该目录中加载该文件

有人建议使用该模块,但我对MakeMaker几乎一无所知,也不知道如何编写自定义模块来启动配置脚本


我很惊讶我找不到任何让这件事容易做的东西。也许我在搜索错误的关键字?

您在IRC中讨论过这一点,要点是:

  • 您不能依赖允许任何交互的安装过程,因为大量安装是通过cpanm进行的,cpanm是非交互的,默认情况下会隐藏Makefile.PL的输出。这是因为用户不喜欢配置东西,例如,Carton部署通常是非交互式的。您可以允许通过Makefile.PL识别的环境变量进行配置,以绕过此问题

  • 您可以使用cpanm的--interactive选项记录要安装的文档,以便响应Makefile.PL中的提示,该文件使用插件注入生成的文件中

  • 您可以在发行版中包含一个脚本,该脚本将设置配置,以便用户可以自己独立于安装进行配置


  • 交叉发布在-我想知道使用任何模板模块是否是为用户预填充配置文件的好方法?您想要的是Dist::Zilla::Plugin::MakeMaker::Awesome,而不是::Custom。它仍然生成普通的Makefile.PL,但允许您挂接并添加自定义项,而后者要求您编写整个Makefile.PL。