package MyClass; use strict; use warnings; use Glib; use Glib::Object::Subclass 'Glib::Object', signals => { mysig => { param_types => [], return_type => undef }, }; sub INIT_INSTANCE { my ($self) = @_; } sub do_mysig { print "MyClass mysig runs\n"; return 123; } package MySubClass; use strict; use warnings; use Glib::Object::Subclass 'MyClass', signals => { mysig => \&_do_mysubclass_mysig }; sub INIT_INSTANCE { my ($self) = @_; } sub _do_mysubclass_mysig { my ($self) = @_; $self->signal_chain_from_overridden; } package main; use strict; use warnings; my $obj = MySubClass->new; $obj->signal_emit ('mysig'); exit 0;