gpt4 book ai didi

perl - 如何从一个 perl 模块调用子程序到另一个 perl 模块?

转载 作者:行者123 更新时间:2023-12-05 02:22:07 25 4
gpt4 key购买 nike

我有一个 perl 文件,它使用了两个 perl 模块 A.pm 和 B.pm。

但是在 B.pm 中我需要调用 A.pm 的子程序。即使我在 A.pm 中使用并尝试使用它,我仍然遇到未定义的错误。

非常感谢对此的任何帮助。

最佳答案

有两个要素 - 首先是找到模块。 Perl 有一个“库”路径,您可以通过以下方式找到它:

print join ( "\n", @INC ); 

这是它看起来的地方。它还会检查当前的工作目录,但使用运行时相对路径会有点困难 - 您需要为此使用 FindBin 模块。

第二个元素是导入和导出子程序。默认情况下,如果您使用 A;,您不会将所有内容导入您的本地 namespace ,因为...您不想意外覆盖您的内部函数之一.那就是疯狂。

所以你要么:

use A qw ( somefunction ); 

它将“拉入”该函数并将其定义在您的本地 namespace 中。这些东西的确切行为可以通过 Exporter 修改。并设置 @EXPORT@EXPORT_OK

或者通过'包路径'引用它。

A::somefunction(@arguments);

这也适用于变量,尽管您必须使用 our 而不是 my 来限定它们的范围。

关于perl - 如何从一个 perl 模块调用子程序到另一个 perl 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30993820/

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