如何在Perl中将全局变量的内容保存到词法变量中,并从sub访问它



我正试图将主脚本中声明的our全局变量的内容保存到模块中的my词法变量中。

main.pl

use strict;
use warnings;
use module;
our $global = "Hello";
function();

模块.pm

package module;
use strict;
use warnings;
use Exporter 'import';
our @EXPORT = qw(  function );

# some needed initialization & definition before subs 
my $var = $main::global;

sub function {
print $var,"n"; 
}
1;

我面临的问题:使用未初始化的值$var错误

即使我试着在作业下面打印,也无济于事!谢谢

通过创建一个包含我想要的所有全局变量的模块,我终于得到了我想要的。并在需要时随处使用。

它看起来像这个

package Globals;
use Exporter 'import';
our @EXPORT = qw( $VERSION $DEV_EMAIL $BASEDIR $CURRENT_PROJECT );
our $VERSION = "0.0.1";
our $DEV_EMAIL = "FOO@BAR.COM";
our $BASEDIR = "./Projects/";
our $CURRENT_PROJECT = '';
1;

其他包.pm

package OtherPackage
use Globals;
my $var = $VERSION
# do something with $var
print $var;
1;

最新更新