用于文本文件处理的Perl优于shell脚本的优势
我正在设置一个测试环境来测试一个程序。该环境包含大量作为输入的文本文件,程序的预期行为也记录在另一组文本文件中。我想用所有输入文件顺序运行程序,并将生成的输出与参考文件进行比较。用于文本文件处理的Perl优于shell脚本的优势,perl,shell,Perl,Shell,我正在设置一个测试环境来测试一个程序。该环境包含大量作为输入的文本文件,程序的预期行为也记录在另一组文本文件中。我想用所有输入文件顺序运行程序,并将生成的输出与参考文件进行比较。 因为我可以选择我可以使用的语言(shell或perl),所以我想知道perl语言的优点/优势是什么。perl至少比任何shell都有以下优点 便携性 在Windows上工作 即使在Unix上,同一个shell命令的行为也可能因系统而异 A A 更好的结构,如功能和编程 使用 更好的测试设施,如和 更适合分销 大
因为我可以选择我可以使用的语言(shell或perl),所以我想知道perl语言的优点/优势是什么。perl至少比任何shell都有以下优点
- 便携性
- 在Windows上工作
- 即使在Unix上,同一个shell命令的行为也可能因系统而异
- A
- A
- 更好的结构,如功能和编程
- 使用
- 更好的测试设施,如和
- 更适合分销
大多数动态语言(Perl、Python、Ruby…)都有这些优点。由于Schwern列出了许多优点,我只剩下一个一直困扰我的缺点 在Perl中调用其他程序比在shell中复杂得多。有许多情况下,您需要处理,而shell通常只是做正确的事情
我个人的经验法则是,当任务主要是调用其他程序时使用shell脚本,当我处理数据时使用Perl。如果两者都需要,我可能会使用一个shell脚本调用Perl进行数据挖掘,尽管如果只发出很少的外部命令,它可能会变成一个完整的Perl脚本。编写一个处理STDIN并输出到STDOUT的Perl脚本,可以使用
unix_命令| Perl_脚本| other_unix_命令>output_文件
,这就是我混合Perl和sh的意思。我完全同意。但是,请看一看并寻找比标准系统和backticks更好的方法。Schwern:您在这里提到的两个非常令人印象深刻的模块。我不确定我是否会添加Perl的面向对象和所谓的700多个测试库作为优势。但是可移植性和大量的库确实使perl成为我目前首选的脚本语言+1.@RenéNyffenegger开箱即用的Perl-OO很臭。OO链接到Moose,可能不是您可能认为的PerlOO。相信我,.Re:OO我现在明白了。。。我没有关注你发布的链接。我必须承认我从未调查过驼鹿。