■2005-04-13
* [Perl] JSONをCPANに
ここしばらく調子悪くて作業ができませんでしたが、やっとJSONモジュールをCPANにアップしました。次バージョンでJSON-RPCもパッケージに含む予定。
0.91でJSONRPCも含めました。
* [Perl][メモ] autobox
以前Scalar::Propertiesで一瞬だけ触れたautoboxのバージョンがあがって、Perl5.8.1にパッチをあてなくても利用できるようになりました。試したところautobox 1.02がPerl5.8.0 (linux)で入りました。
autoboxを使うと、スカラー値やハッシュリファレンス、リストリファレンス、コードリファレンスからメソッドを呼び出せるようになります。例えば3.1415はSCALARという型に属して、my $three = 3.1415->int;
などとできるように(後述のようにautoboxだけではできません)。また自作のクラスをSCALAR, ARRAY, HASH, CODEの各型として設定可能(autoboxはスコープレキシカルなプラグマなので途中で変更したり、no autobox
できます。他に四つの型全てに適用されるDEFAULT, undefに対するUNDEF, デバッグ用?のREPORTなどがあります。
ただし、autobox自体はメソッドを提供しないので、autobox::Coreのようなモジュールが必要になります。autobox::Coreは多くの組み込みの関数(さらにHash::Utilからlock_keysなども導入)やPerl6で導入されるいくつかのものをメソッドとして利用可能にします。ただ、ARRAY型のforがバグってるぽいです(最後の要素にアクセスしない)。
use autobox; use autobox::Core; "Hello World."->length->print; # 12を出力 [12,51,29,54,67,98,23]->sort ->reverse ->print; # 98 67 54 51 29 23 12 $array = [1..10]; $array->join(',')->print;
そうするとJSON::*
とかつくってあげて
{ use autobox DEFAULT => 'JSON::'; my $js = {foo => 'bar'}->toJson(); # {"foo":"bar"} }
とか出来そうですね。
* [Perl][メモ] CGI::ApplicationをSledgeっぽく使うラッパー
朝倉さんのところでCGI::ApplicationをSledgeっぽく使うラッパーって需要があるのかな?というのが。 似たようなことをCGI::Prototypeでやろうとしていたので、これは大変有り難そうです。
花粉でしたか?
いえ、花粉ではなくて、飲み過ぎで……