0

我对 perl 有疑问,我需要在命令行参数/开关/选项中获取文件名,并且基于此我需要在我的脚本中包含/要求/使用该文件。因此,通过使用该 getopt 变量,我能够完成它。但是,如果我在我的脚本中使用了“使用严格”,我就无法得到它。请帮忙

我尝试如下及其工作

基础.pm:

our $def_name = "me";

主要.pl:

my $name = "mathlib.pm";
require $name;
print $def_name;

当我在 main.pl 和 base.pm 中包含以下行时,

use strict;
use warnings;

我收到错误,

Global symbol "$def_name" requires explicit package name .
Execution of main.pl aborted due to compilation errors.
4

1 回答 1

1

$def_name还没有从 导出mathlib.pm,它是一个包变量而不是全局变量。$mathlib::def_name将起作用,或者您可以使用该Exporter模块将其导出到使用它的任何模块的命名空间中。

于 2013-08-16T09:38:03.930 回答