The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Вызов внешней процедура из пакета."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Вызов внешней процедура из пакета."  
Сообщение от dimau (ok) on 12-Ноя-07, 18:50 
###############
Mypackage.pm
###############
Есть пакет
package Mypackage;

sub new{
        my $self={};
        bless($self);
        return $self;
}
sub mytest{
#пытаюсь вызвать внешнюю функцию:
test();
}

....
##################
test.pl
##################
use Mypackage;

sub test
{
print "Yahoo!!!";
}

$a = Mypackage->new();
$a->mytest();
и тут:
Undefined subroutine &Mypackage::mytest::testcalled at ....


Как мне вызвать внешнюю функцию test из объекта Mypackage????

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Вызов внешней процедура из пакета."  
Сообщение от AMDmi3 (??) on 12-Ноя-07, 20:08 
>Как мне вызвать внешнюю функцию test из объекта Mypackage????

Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по ссылке (perldoc perlsub).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Вызов внешней процедура из пакета."  
Сообщение от dimau (??) on 13-Ноя-07, 00:51 
>>Как мне вызвать внешнюю функцию test из объекта Mypackage????
>
>Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо
>во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по
>ссылке (perldoc perlsub).

Спасибо
Так и думал, лучше всего внешний модуль наверное юзать в этом случае.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Вызов внешней процедура из пакета."  
Сообщение от NuINu (??) on 13-Ноя-07, 09:27 
>>>Как мне вызвать внешнюю функцию test из объекта Mypackage????
>>
>>Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо
>>во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по
>>ссылке (perldoc perlsub).
>
>Спасибо
>Так и думал, лучше всего внешний модуль наверное юзать в этом случае.
>

Передай ссылку на функцию в конструктор объекта, или в вызываемый метод.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Вызов внешней процедура из пакета."  
Сообщение от angra (ok) on 13-Ноя-07, 15:26 
>#пытаюсь вызвать внешнюю функцию:
>test();

заменить на
&main::test();
и будет работать. Правда для callback лучше все-таки применять передачу ссылки на функцию

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру