-3

我需要从另一个脚本调用 perl 脚本。约束是,在 .pm 文件中定义的全局变量很少在两个脚本之间通用,但局部变量不共享。请让我知道如何做到这一点

4

2 回答 2

3

您是否有任何理由不能将第二个脚本中的代码作为第一个脚本中的函数调用?它应该作为单个程序工作,因此共享全局变量。

检查如何在我的 Perl 脚本中包含来自另一个文件的函数?了解将一个脚本包含到另一个脚本中的各种方法。

于 2013-01-03T06:31:18.070 回答
0

这取决于您希望它如何工作。

如果你想在进程之间共享全局变量,那么你就是一个“享受”。您将需要共享内存 ( shmget) 或其他一些 IPC(进程间通信)机制,请参阅perldoc perlipc。有趣的部分是同步这两个进程,这样它们就不会尝试同时更新相同的东西。如果可以避免的话,你真的不想去那里。

更简单的是,如果您只想将这些全局值传递给第二个进程,以便它可以获取自己的副本。如果这些值是简单的文本,那么您可以将它们作为命令行参数(从 中读取@ARGV)或作为环境变量 ( %ENV) 传递。但是,如果它们更奇特,例如引用或文件句柄,那么您需要找出不同的协议。假设您不使用 Windows,使用fork(您可能不需要)创建子进程可能是一种更简单的方法。exec

更好的是,考虑您是否真的需要复制或共享这些全局变量。

于 2013-01-03T06:41:54.797 回答