空前の非同期ブームに乗っかってみます。
Coro::LWPのドキュメントはやたらあっさりしてるんですが、以下のようなコードで効果がわかります。
use strict; use warnings; use Coro; # use Coro::LWP; use LWP::UserAgent; async { print "Hi\n"; }; my $ua = LWP::UserAgent->new; my $res = $ua->get("http://d.hatena.ne.jp/hiratara/"); print $res->title, "\n"; cede;
このまま実行すると、
a geek born in Tomakomai Hi
となりますが、 use Coro::LWP の行を有効にすると、
Hi a geek born in Tomakomai
となります。つまり、LWPがブロックせずに別スレッドに処理を譲ってくれるようになります。便利ですね!