我为我正在处理的一些脚本编写了一个便利库。除了提供强制参数之外,它还将 Getopt::Long
包装成更简单的东西。因此,该库将许多参数添加到脚本的必需/可能的命令行参数列表中。
由于脚本还在 --help
标志上调用 pod2usage,我希望库能够通过某种方式提供它向各个脚本提供的每个标志的定义,因此调用pod2usage时即可渲染。
例如,使用我的库添加的 --dosomething
标志,无论如何,当我运行 a.pl --help
时,它将包括a.pl
提供的帮助定义,还有库提供的定义,例如 --dosomething
的定义,而 a.pl
可能没有知道吗?
有什么方法可以实现这一点——让库在运行时修改脚本的 POD?
最佳答案
不幸的是,pod2usage
对于此目的来说太静态了。您可以查看App::Cmd或Getopt::Long::Descriptive (由 App::Cmd 使用)以获得更接近此的一些功能。
也就是说,您不需要使用 pod2usage 来打印使用语句,它只是转储脚本自己的 pod 的一种有用方法。
关于Perl 在运行时以编程方式修改 POD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372028/