Как сохранить содержимое глобальной переменной в лексические переменные в Perl и получить к ней доступ из подпрограммы - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь сохранить содержимое глобальной переменной our, объявленной в основном скрипте, в лексическую переменную my в модуле.

main.pl

use strict;
use warnings;
use module;

our $global = "Hello";

function();

module.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 error

Даже когда я пытаюсь сделать печать только по заданию, это не работает! Спасибо.

1 Ответ

1 голос
/ 06 апреля 2020

наконец я получил то, что хочу, создав модуль, содержащий все глобальные переменные, которые я хочу. и используйте его везде, где это необходимо.

это выглядит так

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;

OtherPackage.pm

package OtherPackage
use Globals;

my $var = $VERSION

# do something with $var
print $var;

1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...