Показать сообщение отдельно
Старый 11.03.2003, 19:17     # 4
asfyvv
Guest
 
Сообщения: n/a

Вот работающий пример. Специально написал, чтобы попробовать.
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. При наличии умного редактора совсем не сложно прописывать полные имена функций и при этом можно не бояться, что имя функции в разных библиотеках совпадет.