Forum Webscript.Ru
Программирование => Perl => Тема начата: Glader от 25 Июня 2003, 09:34:47
-
Подключаю один модуль из другого с вызовом функции. А функция почему-то не импортируется. Что тут не так?
========== 1.pl ===
use My::m1 qw(&f);
print &f;
=================
==== My/m1.pm ========
package My::m1;
use Exporter;
@ISA = (\'Exporter\');
@EXPORT_OK = qw(&f);
use My2::m2 qw(&f2);
sub f{
return &f2;
}
==============
===== My2/m2.pl ====
package My::m2;
use Exporter;
@ISA = (\'Exporter\');
@EXPORT_OK = qw(&f2);
sub f2{
return "F2!";
}
=================
Отвечает:
Undefined subroutine &My::m1::f2 called at My/m1.pm line 13.
Как быть?
-
perldoc perlmod
+ исправить ошибки
==============1.pl============
#!/usr/bin/perl
use My::m1 qw(f);
print &f;
==============1.pl=============
==============My/m1.pm=========
package My::m1;
use Exporter;
@ISA = (\'Exporter\');
@EXPORT_OK = qw(&f);
use My::m2 qw(f2);
sub f{
return &f2;
}
============================
===========My/m2.pm==========
package My::m2;
use Exporter;
@ISA = (\'Exporter\');
@EXPORT_OK = qw(&f2);
sub f2{
return "F2!";
}
========================
-
Читал. Не-а, не помогает. Странно еще, что раньше примерно такие же штуки (по крайней мере вызовы use My qw(&func)) отлично работали. То ли крыша едет, то ли еще что...
-
Кстати, функция-то f из модуля My::m1 подгружается! Не срабатывает только из модуля в модуль...
-
Эээээ...я же тебе исправленный и работающий вариант привел.:)
-
упс. сорри. вроде пошлО. Спасибо.
Ошибка у меня была в имени второго модуля.
package My2::m2
а не
package My::m2