Forum Webscript.Ru

Программирование => Perl => Тема начата: smoker_cannabis от 05 Апреля 2006, 23:56:44

Название: Че за ошибка ?
Отправлено: smoker_cannabis от 05 Апреля 2006, 23:56:44
Can\'t locate object method "new" via package "MyWorker" at MyWorker.pm line 12.

Как ее избежать?
Название: Че за ошибка ?
Отправлено: frenky от 06 Апреля 2006, 00:10:12
если модуль не самописный то возможно для его работы нужны еще какието модули это надо читать в файле MANIFEST

если самописный то значит  вы используете в MyWorker.pm метод или процедуру new не описанную
Название: Че за ошибка ?
Отправлено: smoker_cannabis от 06 Апреля 2006, 00:25:47
Цитировать

#!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


Разве не описанная?
Название: Че за ошибка ?
Отправлено: arto от 06 Апреля 2006, 09:29:17
SUPER::new -- ?
Название: Че за ошибка ?
Отправлено: smoker_cannabis от 06 Апреля 2006, 10:32:19
SUPER::new используется во многих модулях, и нигде не описана!
Название: Че за ошибка ?
Отправлено: arto от 06 Апреля 2006, 11:30:54
а зачем вы вставляете то, о чем не имеете представления? ради прикола?
накурившись анаши?

а уж об "нигде не описана" даже слов не находится.

домашнее задание -- найти описание SUPER в документации.
Название: Че за ошибка ?
Отправлено: djkostya от 06 Апреля 2006, 11:55:38
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;
}

ну я лично так начинаю модуль
Название: Че за ошибка ?
Отправлено: smoker_cannabis от 06 Апреля 2006, 16:46:38
djkostya
вы можете привести полный исходник?

arto
Просто нужно как можно быстрее.
Название: Че за ошибка ?
Отправлено: NeoNox от 06 Апреля 2006, 17:16:57
smoker_cannabis
http://wdh.suncloud.ru/perl08.htm
Название: Че за ошибка ?
Отправлено: smoker_cannabis от 06 Апреля 2006, 17:24:59
ВСЕМ СПАСИБО
Название: Че за ошибка ?
Отправлено: arto от 06 Апреля 2006, 18:45:39
Просто нужно как можно быстрее.:

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
#
Название: Че за ошибка ?
Отправлено: smoker_cannabis от 07 Апреля 2006, 13:46:25
arto
Спасибо !!