GUIのイベントを拾ったり、IRCクライアントのように登録したコールバックが何度も呼ばれるパターンでは、return型の関数にするのは難しいと思います。 while でループさせるような作りにしたらできそうですけど、それがわかりやすいかどうか。 Coro::AnyEventでフロントエンドをコールバックを使わずに書くComments やっつけ仕事で一応やってみましたが・・・。特にIRC::Clientで、while内でイベントの種類で分岐しまくる作りとなる辺り、なんか逆行してる感がw Twitter::Streamの方はいい感じだと思います*1。発生するイベントが1個だと、コールバックが何度も呼ばれるライブラリでもうまくCoroにあいますね。 package main; use strict; use warnings; use Coro; use Encode; use utf8; my
Coroっていうモジュールがあります。Coroutine っていう概念を理解してないのもあり、 dmakiさんの記事で、なんとなく、 非同期でいろいろ出来るようになるモジュールなんだろうな、っていうくらいにしか考えて 無かったんですが、本質的にはちょっとイメージが違ったっぽいっす。 全然間違っているかもだけど、現在の僕の理解を書いてみます。 Coro.pm のソースを見てると、Coro::Stateをベースクラスにしてます。 このCoro::State、ドキュメント読んでても英語が不得意なせいもあり、よく分からなかったんですが、 いろいろいじってるうちに、なんとなく、「現在の実行状態(レキシカル変数や、関数スタック)を保存 しておける箱」っていうのが見えてきました。 といっても意味分からないっすね。 とりあえずサンプルコード use Coro::State; $::main = Coro:
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
CoroでFlickrにアクセスする もうずいぶん前からCoroを使いたくて使いたくてしょうがなかったのだが、やっときたよ。Flickr APIを叩いて、非同期I/OしながらCoroで写真の情報をダウンロードするよ! まず某sukebeさん作のWebService::Simpleを使ってみるよ(本当に使ったコードは違うフレームワーク用にいろいろついてたので、あまり利便性とか考えずに説明用のコードだけ書きだします) package MyFlickrModel; use strict; use WebService::Simple; my $webservice = WebService::Simple->new( \%必要な引数 ); # 写真のIDを渡すとinfo, context, sizes, permsを全部ひっぱってくる sub find_photo { my $class =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く