В целом, когда вы работаете с несколькими файлами и импортируете переменные или подпрограммы между ними, вы обнаружите, что требование к файлам становится немного сложнее по мере роста вашего проекта. Это происходит из-за того, что все разделяют общее пространство имен, но с некоторыми переменными, объявленными в некоторых файлах, но не в других.
Обычный способ решения этой проблемы в Perl - это создание модулей, а затем импорт из этих модулей. В этом случае:
#!/usr/bin/perl
package My::Module; # saved as My/Module.pm
use strict;
use warnings;
use Exporter;
our @ISA = 'Exporter';
our @EXPORT = qw(@a @b);
our (@a, @b);
@a = 1..3;
@b = "a".."c";
и затем использовать модуль:
#!/usr/bin/perl
use strict;
use warnings;
use My::Module; # imports / declares the two variables
print @a;
print @b;
Эта строка use
на самом деле означает:
BEGIN {
require "My/Module.pm";
My::Module->import();
}
Метод import
происходит от Exporter
. Когда он вызывается, он экспортирует переменные из массива @EXPORT
в вызывающий код.
Просмотр документации для Exporter и perlmod должен дать вам отправную точку.