gpt4 book ai didi

perl - 从 perl 程序导入单个子程序

转载 作者:行者123 更新时间:2023-12-01 05:27:08 26 4
gpt4 key购买 nike

有没有办法从 Perl 脚本导入/导出单个子例程。我被要求将测试用例分成正面和负面测试,我不想复制整个子例程。但是,如果我requireuse 来自负面的正面测试用例,我会收到针对所有常用命名子的重新定义 警告。以下是我尝试过的一些替代方案:

require/use "positive_test.pl" qw (useful_sub);
#throws warning: Subroutine run_test redefined at ...

require/use "positive_test.pl::useful_sub";
#throws can't locate in @INC error

来自 positive_test 脚本:

use base 'Exporter';
our @EXPORT = qw(useful_sub);

我还尝试在新的子例程命名空间中使用和要求。我错过了什么,或者我是否必须将每个公共(public)模块名称包装在一个没有警告的“重新定义”包装器中?感谢您的帮助

最佳答案

可能最好的方法是:进行一些重构。创建一个新的 .pm 文件,其中包含您要导出的所有潜艇。

当然,Perl 可以在不重构的情况下破解这些问题。例如,您可以在调用 require 之前切换到另一个包:

{
package AnotherPackage;
require "positive_test.pl";
}

AnotherPackage::useful_test();

请注意,在这种情况下,您根本不需要导出器。

关于perl - 从 perl 程序导入单个子程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17538016/

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