Scroll to navigation

MooX::Role::EventEmitter(3pm) User Contributed Perl Documentation MooX::Role::EventEmitter(3pm)

NAME

MooX::Role::EventEmitter - Event emitter role

SYNOPSIS

  package My::Thing;
  use 5.020;
  use feature 'signatures';
  no warnings 'experimental::signatures';
  use Moo 2;
  with 'MooX::Role::EventEmitter';
  sub event_received( $self, $ev ) {
      $self->emit( myevent => $ev );
  }
  # ... later, in your client
  package main;
  my $foo = My::Thing->new();
  $foo->on( myevent => sub( $ev ) {
      say "I receivend an event";
  });

METHODS

"$obj->emit $name, @args"

Emit an event

"$obj->has_subscribers $name"

Check if an event has subscribers.

"$obj->on $name, @args"

  my $cb = $obj->on( myevent => sub { ... });

Subscribe to an event.

"$obj->once $name, @args"

  my $cb = $obj->once( myevent => sub { ... });

Subscribe to an event for just one event.

"$obj->subscribers( $name )"

  my $s = $obj->subscribers( 'myevent' );

Return an arrayref of the subscribers for an event.

"$obj->unsubscribe( $name => $cb )"

  $obj->unsubscribe('myevent', $cb); # a specific callback
  $obj->unsubscribe('myevent');      # all callbacks

Unsubscribe from event.

SEE ALSO

Mojo::EventEmitter - the module this API is based on

2025-10-11 perl v5.40.1