Как импортировать все «наши» -Variables из безымянного модуля Perl без их перечисления?

Мне нужно импортировать все Наши переменных из Безымянный модуль Perl (модуль. PM) и используйте их внутри сценария Perl (Script.pl).

Следующий код хорошо работает без «Использовать строго» , но с ним не удалось. Как я могу изменить этот код на работу с «Использовать строго» без ручного листинга всех импортных переменных (как описано в ответе на Другой вопрос )?

Большое спасибо за помощь!

SCRIPP.PL:

use strict;
require Module;
print $Var1;

Module.pm:

our $Var1 = "1\n";
...
our $VarN = "N\n";
return 1;

Запустите скрипт:

$> perl Script.pl

Ошибки:

Global symbol "$Var1" requires explicit package name at Script.pl line 3.
Execution of Script.pl aborted due to compilation errors.

Примечание (1) : Модуль является Без имени, поэтому используя модуль : : Префикс не является опцией.

Примечание (2) : Module.pm содержит также набор функций, настроенных глобальными переменными.

Примечание (3) : Переменные разные и не должны храниться в одном массиве.

Примечание (4) : Дизайн не хорош, но вопрос не о дизайне. Речь идет о заставке перечисленного кода для работы с минимальными модификациями со сложностью o (1) , то есть несколько строк кода, которые не зависят от n .

Решение Кандидат (принято) : Добавить $ :: перед всеми импортированными переменными. Он соответствует строгим , а также позволяет различаться Мои переменных из Imported в коде.

9
задан Community 23 May 2017 в 12:14
поделиться