こんにちは。hiratara です。みなさん、意識は高まっていますか? 私は上々です。今回は拙作の Data::Monad::CondVar というモジュールを紹介させて頂きます。 モジュール名にMonad というNGワードが入っていますが、このモジュールはAnyEvent 用のJSDeferred です。JSDeferred はみなさん好きですね? 嫌いな人は好きになるまで何度も繰り返し使って好きになればいいと思います。 コールバック方式の関数を順に呼び出す場合、一般に記述がネストします。 use AnyEvent; sub add1($$) { my ($n, $cb) = @_; my $t; $t = AE::timer 1, 0, sub { $cb->($n + 1); undef $t; }; } my $cv = AE::cv; add1 0 => sub { my $n