gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:44:37 29 4
gpt4 key购买 nike

我有一个Perl脚本,该脚本运行另一个具有编辑文件系统功能的实用程序(对于感兴趣的人称为Radmind)。 Perl脚本监视此过程的输出,因此它将在整个情况下运行。

如果脚本运行的实用程序尝试编辑脚本文件本身,即用较新的版本替换脚本文件,将会发生什么情况? Perl是否会在执行开始时加载脚本和任何链接的库,然后忽略脚本文件本身,除非特别告知要弄乱它?又或者,是否会变得一团糟,取决于新文件与正在运行的文件的不同,执行可能会失败,也可能不会失败?

也许是完全其他的东西?抱歉,如果这属于SuperUser,对我来说似乎是一个灰色区域。

最佳答案

这并不像pavel的回答那么简单,因为Perl实际上并没有明确区分“首先编译源代码,然后运行编译后的代码” [1],但基本要点是:读取每个源文件除非您特别指示perl重新加载文件并执行新版本的代码,否则在编译或执行该文件中的任何代码之前,必须完整地从磁盘上复制该文件,并且对源文件的任何后续更改都不会影响正在运行的程序。 ]。

[1] BEGIN块将在编译期间运行代码,而诸如evalrequire的命令将在运行时编译其他代码

[2]最有可能使用evaldo,因为requireuse检查文件是否已经加载,如果已加载,则将其忽略。

关于perl - Perl如何与正在运行的脚本进行交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618072/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com