Size: a a a

2020 November 27

W

Warstone in Modern::Perl
мм... Давай полный код... Пока не понятно.
источник

SZ

Sergey Zhmylove in Modern::Perl
Warstone
мм... Давай полный код... Пока не понятно.
++ желательно в виде tar который можно запустить
источник

c

crux in Modern::Perl
Warstone
мм... Давай полный код... Пока не понятно.
Полный код здоровый, его не вырву быстро
источник

W

Warstone in Modern::Perl
Sergey Zhmylove
В родителе не должен вызываться test при этом
Может вызваться, если там явно вызов SUPER / next::method
источник

c

crux in Modern::Perl
Sergey Zhmylove
А как написано экспортирование в xs?
источник

c

crux in Modern::Perl
XSModule это JSON:😷S
источник

W

Warstone in Modern::Perl
Так и?..
источник

W

Warstone in Modern::Perl
Ты от него наследующеся?
источник

W

Warstone in Modern::Perl
Или ему ISA правишь?
источник

c

crux in Modern::Perl
Warstone
Ты от него наследующеся?
Щаз соберу из реального
источник

c

crux in Modern::Perl
Warstone
Может вызваться, если там явно вызов SUPER / next::method
этого нет
источник

c

crux in Modern::Perl
package Parent;

use strict;
use warnings;

use base 'Log::Dispatch::Output';
use JSON::XS qw();

sub log_by_filebeat {
   my ($self, $data) = @_;

   eval {
...
       # здесь пытается вызваться encode_json из JSON::XS
       $sock->syswrite($self->encode_json($data));
...
   };
}

sub encode_json {
...
}

1;

package Child;

use strict;
use warnings;
use JSON::XS;

use base 'Parent';

sub log_message {
   my $self = shift;

   $self->log_by_filebeat($body);

}

1;
источник

W

Warstone in Modern::Perl
Так... И вопрос в чем?..
источник

c

crux in Modern::Perl
Вопрос - почему из XS, а не тот, который в Parent.
источник

c

crux in Modern::Perl
пытается вызваться encode_json
источник

W

Warstone in Modern::Perl
Встаньте бряком в то место и спросите mro::get_linear_isa(ref $self)
источник

W

Warstone in Modern::Perl
Вангую что над Parent будет еще класс, где и переопределен encode_json или впихнут сам JSON::XS
источник

c

crux in Modern::Perl
Warstone
Встаньте бряком в то место и спросите mro::get_linear_isa(ref $self)
       [
         'Child',
         'Parent',
         'Log::Dispatch::Output',
         'Log::Dispatch::Base'
       ];
источник

W

Warstone in Modern::Perl
ммм... та-а-ак...
источник

W

Warstone in Modern::Perl
А ref $self там какой?
источник