package Obj; sub new { my $class = shift; my $self = { @_ }; bless $self, $class; $self->set_signal_handlers; $self; } sub name { shift->{'name'}; } sub set_signal_handlers { my $self = shift; $SIG{USR1} = sub { $self->handle_USR1() } } sub handle_USR1 { my $self = shift; print "handling USR1 for ", $self->name, "\n"; } package main; my $obj1 = new Obj(name => 'obj1'); my $obj2 = new Obj(name => 'obj2'); while (1) { }