The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/opt/perl/bin/perl
package test;
our @ISA = qw/Object::Event/;
sub new {
my $c = shift;
my $self = $c->SUPER::new (@_);
# register on the 'up' event and then call the 'down' event
$self->reg_cb (up => sub { $self->event ('down'); });
$self
}
sub up {
my ($self) = @_;
$self->event ('up'); # genereate an internal up event
}
package main;
my $t = test->new;
$t->reg_cb ( # reg_cb registers on a set of specific events
down => sub {
my ($t) = @_;
print "Yay, we got down again...\n";
}
);
$t->up; # test will emit the 'down' even we registered upon above