Perl中的系统,exec和反引号有什么区别?

PJ.*_*PJ. 7 perl ipc

在Perl中,从我的脚本运行另一个Perl脚本,或运行像任何系统命令mv,cp,pkgadd,pkgrm,pkginfo,rpm等,我们可以使用以下命令:

  • system()
  • exec()
  • `` (反引号)

三者都是一样的,还是不一样?在这种情况下,三者都能得到相同的结果吗?它们是否用于不同的场景,比如调用我们必须使用的Perl程序以及我们必须使用system()的其他程序``(反引号).

请告知,因为我目前正在使用system()所有电话.

hob*_*bbs 12

他们都是不同的,文档解释了他们是如何不同的.反引号捕获并返回输出; system返回退出状态,exec如果成功则永远不会返回.


aaa*_*210 6

IPC :: System :: Simple可能就是你想要的.

它为反引号,system()和其他IPC命令提供安全,便携的替代方案.

它还允许您为大多数所述命令避免使用shell,这在某些情况下可能会有所帮助.