是否可以使用require?
访问另一个perl脚本中声明的全局变量的值例如
Config.pl
#!/usr/bin/perl
use warnings;
use strict;
our $test = "stackoverflow"
Main.pl
#!/usr/bin/perl
use warnings;
use stricts;
require "Config.pl"
print "$test\n";
print "$config::test\n";
答案 0 :(得分:4)
确定。您建议几乎的方式有效。尝试:
Config.pl
:
use warnings;
use strict;
our $test = "stackoverflow";
和主程序:
#!/usr/bin/perl
use warnings;
use strict;
require "Config.pl";
our $test;
print "$test\n";
当您调用require
时,文件将在与调用者相同的命名空间中执行。因此,如果没有任何名称空间或my
声明,则分配的任何变量都将是全局变量,并且对脚本可见。
答案 1 :(得分:2)
您需要通过编写
在$test
中声明变量Main.pl
our $test;
和Config.pl
一样。然后一切都会按预期运作。
答案 2 :(得分:2)
最好使用模块:
MyConfig.pm
:(已经有一个名为“Config”的核心软件包。)
package MyConfig;
use strict;
use warnings;
use Exporter qw( import );
our @EXPORT_OK = qw( $test );
our %EXPORT_TAGS = ( ALL => \@EXPORT_OK );
our $test = "stackoverflow";
1;
main.pl
:
use strict;
use warnings;
use MyConfig qw( :ALL );
print "$test\n";