gpt4 book ai didi

Perl:如何在多个独立脚本之间共享大量模块的导入?

转载 作者:行者123 更新时间:2023-12-04 10:11:55 31 4
gpt4 key购买 nike

我有很多独立的脚本。他们唯一共享的是,他们使用()一大组 CPAN 模块(每个模块都导出几个函数)。我想集中这个模块列表。我找到了几种方法。哪一个是最好的?

  • 我可以创建 SharedModules.pm 来导入所有内容,然后使用 Exporter 手动将所有内容导出到 main::。
  • 我可以创建以“package main”开头的 SharedModules.pm;所以它将直接导入到 main::.它似乎工作。这是不好的做法,为什么?
  • 我可以 require() 一个似乎也将所有内容导入 main::的 sharedmodules.pl。我不喜欢这种方法,因为 require() 在 mod_perl 下效果不佳。

  • 第二个对我来说看起来最好,但是我想知道为什么例如 Modern::Perl 不能那样工作。

    编辑:我认为这个问题是 asked before .

    最佳答案

    也许比将所有内容都放入 main 更灵活命名空间将导入调用者的命名空间。像这样的东西:

    package SharedModules;

    sub import {

    my $pkg = (caller())[0];
    eval <<"EOD";

    package $pkg;

    use List::Util;
    use List::MoreUtils;

    EOD

    die $@ if $@;
    }

    1;

    关于Perl:如何在多个独立脚本之间共享大量模块的导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919625/

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