先週末から SWIG を使って分類器と学習器の Perl/Python/Ruby/Lua バインディングを書いていた.3年ぐらい前に書いた分類器の Ruby バインディングは,Ruby の C インタフェースが変わってそのままでは動かなかったので,結局一から書き直すことに.Python -> Ruby -> Perl -> Lua と書いてきて一番大変だったのは Perl.学部の時少し使っただけで,もはや文法をほとんど覚えていなかったので,何よりテスト用のスクリプトを書くのが大変だった. SWIG で書いた std::vector 用の入力インタフェースは以下.スクリプト言語側の配列を C++ の std::vector に詰め直して関数に渡すだけ.色々拾ったり編集したりしたものだけど,言語横断的に見れたほうが便が良いのでメモしておく.swig-2.0.3 + Perl 5.8.9/5.1