■2005-07-19
* [Perl] JSON 0.98
最近、しばしばJSONとJSANを見間違えてドキッとします。 それはともかく、新しいバージョンをリリースしました。まずtypoの指摘を頂いたので修正。しかしtypo以前に期待している動作と反対の処理をしていました。それからコードリファレンスを含むオブジェクトをobjToJson
に渡すと実行して戻り値を使うようにしました。{foo => sub { return "bar" }}
は{"foo":"bar"}
に。
そして一番大きな修正は、8進数と16進数を扱えるようにしたこと。例えば {"foo":0xff}
は{foo => 255}
に。 JSONのスペックには書かれていないのですが、スペックをつくった本人がJava版のソースでやっているのだそうです。対応して欲しいといわれたので対応してみました。
* [メモ] トロツキー暗殺凶器?
トロツキー暗殺凶器?現存 おお。
コードリファレンスを実行してしまうのはデフォルトとしてはよくない挙動な気がしますが。。
>デフォルトとしてはよくない挙動<br>の理由は<br>・セキュアでない<br>・直感に反する機能<br>という辺りでしょうか。<br>機能を加える際に迷ったのですが、perl=>json 方向なので<br>コードを書いた人が責任を持つだろう、と思った次第です。<br><br>次バージョンまでにどうするか決めようと思いますが、<br>この問題点についてさらに何かご指摘の点がありましたら、<br>ぜひよろしくお願いします。
ああ、0が数値として使えなくなったてメールがたった今。<br>ひどいバグだ……
デフォルトがどちらがいいかはおまかせしますが、コードリファレンスはスキップするのもひとつのオプションとしてはアリかと。
>0が数値として使えなくなったてメール<br><br>0.981で修正しました。<br><br>>コードリファレンスはスキップするのもひとつのオプション<br><br>おっしゃるとおり、ユーザが自分が何をしようと<br>しているのかを理解している場合にのみcoderefを<br>展開するような挙動の方が無難だと認識しました。<br>次バージョンでオプショナルに変更します。