###############
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????
>Как мне вызвать внешнюю функцию test из объекта Mypackage????Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по ссылке (perldoc perlsub).
>>Как мне вызвать внешнюю функцию test из объекта Mypackage????
>
>Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо
>во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по
>ссылке (perldoc perlsub).Спасибо
Так и думал, лучше всего внешний модуль наверное юзать в этом случае.
>>>Как мне вызвать внешнюю функцию test из объекта Mypackage????
>>
>>Mypackage.pm не знает ничего про test(). Либо определяй ее в Mypackage.pm, либо
>>во внешнем модуле, который используй в Mypackage.pm, либо передавай функцию по
>>ссылке (perldoc perlsub).
>
>Спасибо
>Так и думал, лучше всего внешний модуль наверное юзать в этом случае.
>Передай ссылку на функцию в конструктор объекта, или в вызываемый метод.
>#пытаюсь вызвать внешнюю функцию:
>test();заменить на
&main::test();
и будет работать. Правда для callback лучше все-таки применять передачу ссылки на функцию