Snowballは、バッチ処理とかできたほうがなにかと便利なのでPerlに移植し始めました。手始めに、Snowballのライブラリの1つであるcssBlock.jsをPerlに移植しました。
移植方法
まず、cssBlock.jsをPerlのファイルにコピー&ペーストします。次に手作業でガリガリっと大まかなところを直します。そしたら、use strictを書き込み、実行します。あとは出てきたエラーを潰します。
まあ上のやり方をみて分かる通りほとんどPerlふれてません。まだ@blocks=(['hoge','hoge'],['fuga','fuga']);と@blocks=*1;の違いもわかってません(後者は多分@blocks=('hoge','hoge','fuga','fuga')と同じだろうなーくらいの理解です)。そのためバグが潜んでいる可能性が高いです。
Perlファイル
使い方
$ perl cssblock.pl "cssコード" 実行するとcssコードを解析して表示します。
終わりに
移植は思ってたとおり難しいです。配列にメソッド足すなど奇っ怪なことが平気な顔してできてしまうJavascriptに慣れてしまったせいですかね。少しずつリハビリ兼ねて移植していきたいです(年内には終わらせたい…)。