Автор Тема: Что-то с use ?  (Прочитано 2797 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Что-то с use ?
« : 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.

Как быть?

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Что-то с use ?
« Ответ #1 : 25 Июня 2003, 10:39:26 »
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!";
}
========================

2B OR NOT 2B = FF

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Что-то с use ?
« Ответ #2 : 25 Июня 2003, 10:56:57 »
Читал. Не-а, не помогает. Странно еще, что раньше примерно такие же штуки (по крайней мере вызовы use My qw(&func)) отлично работали. То ли крыша едет, то ли еще что...

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Что-то с use ?
« Ответ #3 : 25 Июня 2003, 11:01:28 »
Кстати, функция-то f из модуля My::m1 подгружается! Не срабатывает только из модуля в модуль...

Оффлайн Chs

  • Perl программер
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1108
  • +0/-0
  • 2
    • Просмотр профиля
    • http://chs.now.at/
Что-то с use ?
« Ответ #4 : 25 Июня 2003, 11:33:56 »
Эээээ...я же тебе исправленный и работающий вариант привел.:)
2B OR NOT 2B = FF

Оффлайн Glader

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 66
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glader.ru
Что-то с use ?
« Ответ #5 : 25 Июня 2003, 11:52:25 »
упс. сорри. вроде пошлО. Спасибо.

Ошибка у меня была в имени второго модуля.
package My2::m2

а не
package My::m2

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28