是否有可能的-w标记添加到perl程序的第一行,然后从像bash或DOS壳运行程序和写所有的警告的到一个文件?

perl somescript.pl > somefile.txt

这是一个倒退到台检查在学校COBOL程序。我想都在一张纸在我面前的警告,所以我可以通过我的计划和解决这些问题一个接一个。如果上述命令不起作用,有编程的方式来获取所有的脚本的警告到一个文件?谢谢你们!

有帮助吗?

解决方案

尝试这种情况:

perl somescript.pl 2&> somefile.txt

当您使用纯重定向(>),则仅重定向标准程序输出流,而警告得到保存到标准的错误输出流。例如参见击参考手册

还有一个六::的QuickFix 模块上CPAN,可以节省警告到一个文件,你可以加载到Vim中,检查所有的警告,而无需手动狩猎的行号。 (谷歌为 VIM的quickfix 。)我没有尝试它自己,虽然。

其他提示

zoul处理重定向的东西,所以这里的上警告令人惊讶的复杂的答案。

只需调用程序像这样:perl -w script.pl

要在脚本和所有模块启用到处

该部队的警告。这实在是最好用的警告编译你写的每模块中。请参阅的perldoc perllexwarn 获得有关此主题的详细信息。

调试时是很好的另一个技巧是使用鲤鱼::始终。如果部队的每个错误的一个完整的堆栈跟踪。我觉得这是非常非常有帮助。只需运行脚本,像这样:

perl -MCarp::Always somescript.pl

或得到它到一个文件:

perl -MCarp::Always somescript.pl 2&> somefile.txt

最后,我会从你的问题多一点离题。许多人通过使用日志库如 Log4Perl喜欢乐器他们的代码。像这样的工具,让你能够在一定程度日志(正常或调试举例)或在你的代码的运行个人应用程序的特定部分。这是调试print语句的最后(?)进化。而在发展,在该领域,一旦你已经到了维护阶段,可以在调试失败非常有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top