我在一个项目中工作,该项目在由系统人员维护的机器上使用 Perl 脚本,安装诸如 Perl 模块之类的软件包并非易事 - 您通常必须调用有权这样做的人,等待几天, 学习这个包的 API,然后记得在每台安装过的新配置的机器上安装它。
多次选择的替代方案是调用 system()
(或反引号,``
,在 Perl 中)并使用 shell 命令的输出做你想做的事。当然这并不总是可行的,当它使用时,通常需要对命令调用进行包装,但通常更容易。
我的问题是,根据您的经验,权衡何时会偏向任何一方?
编辑:添加示例:
我想以人类可读的格式打印目录的总大小,或者列出所有大于特定大小的常规文件,du
似乎比安装做同样事情的模块更容易...
最佳答案
哦,这很简单。人们总是更喜欢模块,因为更紧密的集成使得传递不适合传统 IPC 的数据成为可能。
什么,您期望在糟糕的系统管理下帮助您合理化痛苦?
关于Perl:什么时候使用 system() 以及什么时候安装包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4545074/