获取perl的-w标签的结果到一个文件
-
23-09-2019 - |
题
是否有可能的-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语句的最后(?)进化。而在发展,在该领域,一旦你已经到了维护阶段,可以在调试失败非常有用。
不隶属于 StackOverflow