加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl如何与正在运行的脚本进行交互?

发布时间:2020-12-15 22:03:01 所属栏目:大数据 来源:网络整理
导读:我有一个Perl脚本,它运行一个不同的实用程序(对于那些感兴趣的人,称为 Radmind),它具有编辑文件系统的能力. Perl脚本监视此进程的输出,因此它将在整个情况下运行. 如果脚本运行的实用程序试图编辑脚本文件本身,即用更新的版本替换它会发生什么? Perl是否在
我有一个Perl脚本,它运行一个不同的实用程序(对于那些感兴趣的人,称为 Radmind),它具有编辑文件系统的能力. Perl脚本监视此进程的输出,因此它将在整个情况下运行.

如果脚本运行的实用程序试图编辑脚本文件本身,即用更新的版本替换它会发生什么? Perl是否在执行开始时加载脚本和任何链接库,然后忽略脚本文件本身,除非特别说明要搞乱它?或许,一切都会崩溃,执行可能会或可能不会失败,这取决于新文件与正在运行的文件有何不同?

或者完全是其他的东西?道歉,如果这属于SuperUser-对我来说似乎是一个灰色区域.

解决方法

它并不像pavel的回答那么简单,因为Perl实际上并没有“首先编译源代码然后运行编译代码”[1]的清晰划分,但基本点是:每个源文件都被读取在编译或执行该文件中的任何代码之前完全从磁盘完成,并且对源文件的任何后续更改将对正在运行的程序没有影响,除非您特别指示perl重新加载文件并执行新版本的代码[2 ].

[1] BEGIN块将在编译期间运行代码,而eval和require等命令将在运行时编译其他代码

[2]最有可能通过使用eval或do,因为require和use检查文件是否已经加载,如果有,则忽略它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读