Perl包含动态文件

时间:2013-08-16 09:20:15

标签: perl

我对perl有疑问, 我需要在命令行参数/开关/选项中获取文件名,并根据我需要在我的脚本中包含/ require / use该文件。 因此,通过使用该getopt变量,我能够完成它。但是,如果我在我的脚本中使用“use strict”,我就无法得到它。请帮助解决这个问题

我尝试了以下和它的工作

base.pm:

our $def_name = "me";

main.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.

1 个答案:

答案 0 :(得分:1)

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