Perl脚本在运行时作为一个独立的进程,调用另一个脚本意味着创建一个子进程,这和函数调用有着本质的区别,函数调用是一个进程中执行了一段独立代码。这是特别需要注意的前提,下面总结了这种机制的优缺点。
优点
- 并行性。进程之间是独立的、并发的,因此脚本调用脚本时,这两个脚本可以是并行工作的,子脚本又可以调用子脚本,并行性可以无限扩展,运行效率高。
- 兼容性。一行命令就能调用其它脚本语言,甚至是系统命令,简洁方便。
缺点
- 传参数需要特别检查。调用脚本时传入参数相当于敲命令时加参数,被调用的脚本不会自己主动检查参数是否符合要求,需要写脚本时单独检查。
- 调用脚本后没有返回值。一种解决方法是子脚本将信息打印在标准输出,父脚本用反引号捕获这些信息。
- 子脚本输出的标准错误信息需要特别处理才能被父脚本捕获。因为反引号语法只能捕获子脚本标准输出,不能捕获标准错误输出。
- 后台运行的子脚本不会被Ctrl+C杀死。调用的子脚本如果在后台运行
&
,它会屏蔽杀死进程的信号,父脚本被杀死后子脚本依旧在运行。
时间: 2024-10-13 02:43:21