WebService::RakuAPIのソース読んだ
勉強がてらRakuAPIのモジュール作ったわけですが、
伊藤さんのコードはどんな感じかな〜と読んでみました。
まず、知らないモジュールをいくつか発見。
- Class::ErrorHandler
- Readonly
- URI
- String::CamelCase
さっそくCPANに行ってこれらのモジュールを探してみる。
Class::ErrorHandler
どうやらエラーメッセージ用アクセサ?っぽい。
メソッドはセッタのerror($message)とアクセサのerrstr。
継承させてつかうみたい。
Readonly
use constantな働きをするモジュール。
use constantでは、
- 配列とハッシュにはちょっと特殊な書き方しなくちゃいけない。
- レキシカルスコープにできない。
- コンパイル時にしか働かない?(Works only at compile time)
- オーバーライド可能。
なのを、Readonlyではその辺カバーしてくれるらしい。
「Perlベストプラクティス」に載ってるモジュールだそうな。
URI
これいいね。
今まで知らんかったのが残念。
my $uri = URI->new('http://rakuapi.ddo.jp/api'); $uri->query_form( keyword => 'PSP', sort => 'new', genre => 'book', ); print $uri;
ってやると、
http://rakuapi.ddo.jp/api?keyword=PSP&sort=new&genre=book
こんな感じでURI生成してくれます。
超便利。
String::CamelCase
これもなかなか便利そう。
文字列を特定の形式に変換してくれます。
camelize($str)は、'some_keyword'を'SomeKeyword'に。
decamelize($str)は、'SomeKeyword'を'some_keyword'に。
wordsplit($str)は'some_keyword'を(some, keyword)、
もしくは'SomeKeyword'を(Some, Keyword)に。
モジュールの使い方だけでも大変勉強になりました。
続きは明日。