gpt4 book ai didi

perl - Perl 的 lib pragma 是如何工作的?

转载 作者:行者123 更新时间:2023-12-04 19:22:16 26 4
gpt4 key购买 nike

我用 use lib "./DIR"从其他地方的文件夹中获取库。但是,它似乎无法在我的服务器上运行,但在我的本地桌面上运行良好。
有什么特别的原因吗?

还有一个问题,use lib在几个模块中传播?

两种情况:
假设我创建了一个需要几个库的基类,但我知道它需要扩展,并且扩展类需要使用另一个库。我可以把 use lib基类中的命令?还是我需要把它放在每个扩展类中?

最后,可以给我一个use package吗?其中包包含一堆使用库,它会将使用库语句传播到我当前的模块吗? <--我不这么认为,但无论如何都要问

最佳答案

.在您的 use lib语句表示“当前工作目录”,并且仅当您的脚本从正确的目录运行时才会起作用。服务器对 cwd 的想法可能是不同的(或未定义的)。假设库目录与脚本位于同一位置并对其私有(private),则您希望执行以下操作:

use FindBin;
use lib "$FindBin::Bin/DIR";

一个 use lib声明影响 @INC -- 当你 use 时 perl 搜索的位置列表或 require一个模块。它全局影响解释器的当前实例。你真的应该只放 use lib脚本中的语句,而不是模块中的语句。

原则上,您可以拥有 package MyLibs由一堆 use lib 组成语句,然后是 use MyLibs在这些位置使用任何软件包之前,但我不推荐它。

关于perl - Perl 的 lib pragma 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2593425/

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