Forum Webscript.Ru
Программирование => Perl => Тема начата: smoker_cannabis от 05 Апреля 2006, 23:56:44
-
Can\'t locate object method "new" via package "MyWorker" at MyWorker.pm line 12.
Как ее избежать?
-
если модуль не самописный то возможно для его работы нужны еще какието модули это надо читать в файле MANIFEST
если самописный то значит вы используете в MyWorker.pm метод или процедуру new не описанную
-
#!c:/usr/bin/perl -w
package MyWorker;
use Distributed::Process;
use Distributed::Process::Worker;
sub new {
my $class = shift;
my $self = $class->SUPER::new(@_);
$self->ignore_queue();
$self;
}
sub run{
my $self=shift;
print "ðàáîòàåì";
$self->result("logs the result");
}
sub go_remote {
my $self = shift;
no strict \'refs\';
no warnings \'redefine\';
my $package = ref($self) || $self;
*{$package . \'::run\'} = *run;
}
1
Разве не описанная?
-
SUPER::new -- ?
-
SUPER::new используется во многих модулях, и нигде не описана!
-
а зачем вы вставляете то, о чем не имеете представления? ради прикола?
накурившись анаши?
а уж об "нигде не описана" даже слов не находится.
домашнее задание -- найти описание SUPER в документации.
-
package МОЙ МОДУЛЬ;
use Distributed::Process;
use Distributed::Process::Worker;
sub new {
my $proto = shift;
my $class = ref($proto) || $proto;
my $self = {};
$self->{1} = undef;
$self->{2} = undef;
bless($self, $class);
return $self;
}
ну я лично так начинаю модуль
-
djkostya
вы можете привести полный исходник?
arto
Просто нужно как можно быстрее.
-
smoker_cannabis
http://wdh.suncloud.ru/perl08.htm
-
ВСЕМ СПАСИБО
-
Просто нужно как можно быстрее.:
1. 05-04-06 19:56
2. 06-04-06 12:46
сухой остаток: быстро -- это не получить ответ за сутки, когда самому можно было найти ответ минут за 15:
# zgrep -l SUPER /usr/share/man/man1/perl*
/usr/share/man/man1/perl58delta.1.gz
/usr/share/man/man1/perl573delta.1.gz
/usr/share/man/man1/perlapi.1.gz
/usr/share/man/man1/perlboot.1.gz
/usr/share/man/man1/perlbot.1.gz
/usr/share/man/man1/perlebcdic.1.gz
/usr/share/man/man1/perlmod.1.gz
/usr/share/man/man1/perlobj.1.gz
/usr/share/man/man1/perlport.1.gz
/usr/share/man/man1/perltoc.1.gz
/usr/share/man/man1/perltooc.1.gz
/usr/share/man/man1/perltoot.1.gz
/usr/share/man/man1/perlunicode.1.gz
#
-
arto
Спасибо !!