トップ «前の日記(■2007-08-31) 最新 次の日記(■2007-12-19)» 編集

どんぞこ日誌

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|07|08|12|
2007|01|04|08|12|
2008|01|02|03|04|06|07|08|10|11|12|
2009|01|02|04|05|06|07|08|09|11|12|
2010|01|03|04|07|08|10|11|12|
2011|01|02|03|04|05|06|07|08|10|12|
2012|01|02|03|05|06|07|08|09|10|
2013|01|02|07|08|09|
2014|08|09|
2015|08|
2016|06|07|12|
2017|01|03|08|
2018|03|
2022|03|
2023|03|
2024|02|

同人関連(どんぞこ楽屋) | 旧い雑文   


■2007-12-07

* [Perl][近況] 新バージョンのText::CSVB!

 私、春頃にText::CSVの新しいメンテナになったのですが、先日ようやくバージョン0.1から1.0にアップしました。
 何が変わったかというと、今まで単体で動作してたのをやめて、Text::CSV_XSかText::CSV_PPに処理を移譲するようにしました。(今後Text::CSV_PPはText::CSVに同梱)

 Text::CSVといえばASCIIキャラしか扱えなかったため、マルチバイトで利用しようと思ったらこれまではText::CSV_XSかText::CSV_PPを使うというのが定番だったかと思います。新バージョンはデフォルトでText::CSV_XSを利用します。そしてText::CSV_XSがインストールされていなければバンドルされているText::CSV_PPを利用します。

  というわけで、今後はText::CSVをインストールするだけでText::CSV_XSと同等の処理ができるようになり、さらにText::CSV_XSがインストールされていればスピードも早くなるという寸法です。

 CPANモジュールでText::CSV_XSないしText::CSV_PPを利用されている方がいらっしゃいましたら、ぜひText::CSVへの切り替えをご検討ください。

* [Perl][近況] CPANのJSONもバージョンアップB!

 なお、近々JSONの新バージョンを出しますが、こちらも同様にJSON::XSかJSON::PPに処理をさせるようになります。
  Perlライクな命名でないと一部で評判の悪かった関数jsonToObjやobjToJsonはobsoletedします。$JSON::AUTOCONVとかの変数も全部無くなるよ! というか旧バージョンと全く互換性が無くなるの。

* [Perl][雑感] JSON::PPのround-tripB!

 これみてたら、メモしておきたくなったので。
  JSON::XSはPerlの数値1と文字列"1"に応じてJSONへの変換を分けているのですが、これをJSON::PPで実装するのに

 my $b_obj = B::svref_2object(\$value);
 my $flags = $b_obj->FLAGS;
 return $value if (
    (    $flags & B::SVf_IOK or $flags & B::SVp_IOK
      or $flags & B::SVf_NOK or $flags & B::SVp_NOK
      ) and !($flags & B::SVf_POK )
  ); # SvTYPE is IV or NV?
 .... 

てなことをやってたり。以前はこんな風に生の値でやってたんですが、Perl 5.9.4とかで値が変わってたりもするので今はB::*使ってます。Perl 5.005だと無かったりしますが(なので自分でガシガシ書いておく)。

[]