Есть класс, который создается в XS:

class A {
..
};

MODULE = mod::XS     PACKAGE = mod::XS::split

A* A::new()
CODE:
   RETVAL = new A();
OUTPUT
   RETVAL

void A::DESTROY()
CODE:
   delete THIS;

И этот класс наследуется от пакета pac2

package mod::XS::split
use base qw(pac2);


В перле есть пакет, в котором кроме всего есть деструктор

package pac;

sub DESTROY {
  ...
}

И пакет, который от него наследуется:

package pac2;
use base qw(pac);

sub new {
return mod::XS::split->new();
}

При удалении этого объекта вызывается деструктор из XSUB, но не вызывается 
деструктор класса pac (то есть родительского).

Вопрос , как из XS-ного деструктора вызывать родительский деструктор. 

Почему-то функция - 

call_method("SUPER::DESTROY", G_DISCARD); _ не работает. Говорит , Can't call 
method...
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить