emitは「放出する」という単語。
eventをemitだから、イベントを放出するモジュール。
例えば以下のように、イベントに対してコールバックを設定して使用するようなモジュールを作成できる。
my $tiger = Cat->new; $tiger->on( roar => sub { my ($tiger, $times) = @_; say 'RAWR!' for 1 .. $times; } ); $tiger->poke;
CatがMojo::EventEmitterで実装したクラスになる。
package Cat; use Mojo::Base 'Mojo::EventEmitter'; sub poke { my $self = shift; $self->emit(roar => 3); } 1;
のように、pokeを呼び出すとemitメソッドでroarイベントを起こすことができる。