Mojoliciousでイベント駆動型プログラミングをやってみたが…

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
package Cat;
use Mojo::Base 'Mojo::EventEmitter';

# Emit events
sub poke {
  my $self = shift;
  $self->emit(roar => 3);
}

package main;

# Subscribe to events
my $tiger = Cat->new;
$tiger->on(roar => sub {
  my ($tiger, $times) = @_;
  say 'RAWR!' for 1 .. $times;
});
$tiger->poke;
1
<a href="#" onclick="alert('こんにちは')">クリックして!</a>
1
2
3
$('#run-button').on('click', function(e){
    /* id="run-button"がクリックされると、プログラムのこの部分が実行される */ 
});
1
$('#run-button').trigger('click');
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
package Cat;
use Mojo::Base -base;

has roar => "MEOW";
has times => 2;

sub poke {
  my $self = shift;
  say $self->roar for 1 .. $self->times;
}

package Tiger;
use Mojo::Base 'Cat';
has roar => "RAWR!";
has times => 3;

package main;

my $tiger = Tiger->new;
$tiger->poke;
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
package Cat;
use Mojo::Base -base;

has roar => "MEOW";
has times => 2;

sub poke {
  my $self = shift;
  say $self->roar for 1 .. $self->times;
}

package main;

my $tiger = Cat->new;
$tiger->roar('RAWR!')->times(3);
$tiger->poke;

Comments

comments powered by Disqus