Мне нужно импортировать все Наши переменных из Безымянный модуль 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
в коде.