У меня есть два Perl-модуля, один из которых является «объектной базой», а другой импортирует функции из этого «объектной базы». Когда я компилирую второй модуль (perl -c Foo/Bar/NewObject.pm
), он компилируется без каких-либо предупреждений.
Проблема в том, что если я включаю модуль UNIVERSAL в компиляцию второго модуля (perl -MUNIVERSAL -Mstrict -wc Foo/Bar/NewObject.pm
), он выдает такие предупреждения, как:
"set" не экспортируется модулем Foo :: Bar :: Object
Итак, мой вопрос: почему включение UNIVERSAL приводит к сбою функции Exporter при экспорте символов из модели «объектная база»?
Пример того, как выглядят модули, приведен ниже.
база объекта:
#!/usr/bin/perl -w
use strict;
package Foo::Bar::Object;
use Exporter;
our @ISA = qw(Exporter);
our @EXPORT = qw( new set get update create );
...
1;
второй модуль:
#!/usr/bin/perl -w
use strict;
package Foo::Bar::NewObject;
use Foo::Bar::Object qw( new set get );
...
1;