Domovoy <domo...@errlock.org> writes: > > So, i finally took a look at Glib::Object::Subclass.pm, and saw that it > was doing its job by defining an import sub.
And putting itself at the start of the caller's @ISA ... > use Glib::Object::Subclass > Gtk2::ScrolledWindow::; > > BEGIN { > require Exporter; > our @ISA = qw(Exporter); This is a store to @ISA, replacing the bits Glib::Object::Subclass put there, hence those bits not working. I get some joy from changing it to unshift @ISA, qw(Exporter); so that Exporter is at the start of @ISA and everything from Glib::Object::Subclass follows. Perhaps the way Glib::Object::Subclass pushes itself onto @ISA to get a perlish new() could be better done by pushing a separate class which had only new(). Then any import() in the caller, or the caller's inheritance, wouldn't be affected in the way you struck. In practice I suspect Exporter is not much used with oopery. Constants can be offered as class methods $c = Foo::Bar->SOME_CONST; which has the advantage of working from instances too $c = $foo->SOME_CONST; Such a call is a very tiny bit slower (and won't constant-fold), but has the advantage that further subclasses can override. > bless($self, $class); This ought to be unnecessary. If it is necessary then you're either doing something wrong, or something very advanced :-). -- It's a long way to the shop if you want a sausage roll. _______________________________________________ gtk-perl-list mailing list gtk-perl-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-perl-list