gpt4 book ai didi

perl - 为什么从模块调用函数时会收到错误消息 "Undefined subroutine"?

转载 作者:行者123 更新时间:2023-12-04 05:25:41 26 4
gpt4 key购买 nike

我有一个名为 Helpers.pm 的模块:

use warnings;
use 5.012;

package Helpers;
use Exporter qw(import);
our @EXPORT_OK = qw(my_function);

sub my_function {
return { one => 1, two => 2 };
}

1;

在脚本中调用它:
#!/usr/bin/env perl
use warnings;
use 5.012;
use Data::Dumper;
use FindBin qw($RealBin);

use lib $RealBin;
use Helpers qw(my_function);

my $ref = my_function();
say Dumper $ref;

而且我没有收到错误消息。
但是当我把模块放到目录 TestDir像这样修改脚本:
#!/usr/bin/env perl
use warnings;
use 5.012;
use Data::Dumper;
use FindBin qw($RealBin);

use lib $RealBin;
use TestDir::Helpers qw(my_function);

my $ref = my_function();
say Dumper $ref;

我收到此错误消息:
Undefined subroutine &main::my_function called at ./perl.pl line 10.

为什么我会收到此错误消息?

最佳答案

您可能忘记更改包声明

package Helpers;

到:
package TestDir::Helpers;

关于perl - 为什么从模块调用函数时会收到错误消息 "Undefined subroutine"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9645023/

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