我想只使用另一个文件中的变量名。
test1.pl
use warnings;
use strict;
our $name = "hello world";
print "Helllloo\n";
test2.pl
use warnings;
use strict;
require "test.pl";
our $name;
print "$name\n";
test1.pl
包含一些包含许多功能的内容。我使用了test1.pl中的变量$name
。但是在运行test1.pl
时不要运行test2.pl
。例如,当运行test2.pl
时,结果是
Helllloo
hello world
来自Helllloo
的{{1}}打印。如何才能使用另一个文件变量名称我该怎么做?
答案 0 :(得分:3)
您应该将test1.pl
和test2.pl
重写为use MyConfig
,就像这样
<强> test2.pl 强>
use strict;
use warnings;
use MyConfig 'NAME';
print NAME, "\n";
<强> MyConfig.pm 强>
use strict;
use warnings;
package MyConfig;
use Exporter 'import';
our @EXPORT_OK = qw/ NAME /;
use constant NAME => "hello world";
1;
<强>输出强>
hello world
答案 1 :(得分:0)
使用Const::Fast从模块中导出变量:
use strict;
use warnings;
use My::Config '$NAME';
print "$NAME\n";
在My/Config.pm
:
use strict;
use warnings;
package My::Config;
use Exporter 'import';
our @EXPORT = ();
our @EXPORT_OK = qw{ $NAME };
use Const::Fast;
const our $NAME => "hello world";
__PACKAGE__;
__END__