在Perl中使用系统命令而不是内置库/函数[复制]

前端之家收集整理的这篇文章主要介绍了在Perl中使用系统命令而不是内置库/函数[复制]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Using Perl modules vs. using system() calls1个
有时我会看到人们从Perl(以及其他脚本语言)调用系统grep,而不是使用内置的语言工具/库来解析文件.我想鼓励人们使用内置设施,我想征求一些原因,说明为什么使用内置工具是一种好习惯.我可以想到一些这样的

>使用库/语言设施更快.由于执行外部命令的开销,性能会受到影响.
>坚持语言设施更便携.

还有其他原因吗?

另一方面,是否有理由支持使用系统命令而不是内置语言设施?在这方面,如果一个Perl脚本基本上只调用外部命令(例如没有库的自定义实用程序),那么制作一个shell脚本可能更好吗?

解决方法

实际上,当它重要时,专用工具可以更快.

保持Perl工作的真正好处是:

>可移植性(即使在具有相同操作系统的计算机之间).
>易于检测错误.
>灵活处理错误.
>更高的可定制性/灵活性.
>更少的“活动部件”. (你确定你正确地逃脱了一切并正确设置了环境吗?)
>需要的专业知识. (您不需要知道Perl和外部工具(及其端口)来编写和维护程序.)

On that note,if a Perl script is basically only calling external commands (e.g. custom utilities without libraries),might it be better just to make a shell script of it?

有可能.如果任何程序返回不成功的错误代码,您可以配置一些shell退出.这可以使一些脚本非常健壮.例如,我有几行bash脚本

trap 'e=$? ; echo "Error." ; exit $e' ERR
原文链接:https://www.f2er.com/Perl/171845.html

猜你在找的Perl相关文章