|
Вот работающий пример. Специально написал, чтобы попробовать.
1. Файл библиотеки test.pm
#!perl
package my_modules::Test;
use strict;
require Exporter;
use vars qw(@ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw(&func1 &func2);
sub func1 {
print "func1\n";
}
sub func2 {
print "func2\n";
}
1;
2. Файл, из которого вызываются функции proba.pl
#!perl
use strict;
use my_modules::Test;
func1();
func2();
Если запустить как есть, то программка отработает без ошибки. Если убрать из строки файла библиотеки @EXPORT = qw(&func1 &func2); , к примеру &func2, то начнет ругаться на неопределенную функцию main::func2, т.е. именно так, как написано. Возможно, Вы привели не весь код библиотеки и там где-то есть дополнительная обработка.
p.s. Сам я предпочитаю не пользоваться Exporter. При наличии умного редактора совсем не сложно прописывать полные имена функций и при этом можно не бояться, что имя функции в разных библиотеках совпадет.
|