高々250階層の再帰でエラー

bluewindのコマンドで、片方にない奴をもう片方に追加するperlスクリプト作っていたら、エラーが出た。

Deep recursion on subroutine "SQL::Parser::non_parens_search" at /usr/lib/perl5/
site_perl/5.8/SQL/Parser.pm line 1553.

SQL::Parserを使う必要はまったくないけど、今後、通常のテキスト処理にSQLを使いたかったため(普通にunixテキストでSQLを使いたいときってあるよね!?)、試すために使ってみた。

スクリプトで"SELECT * FROM wind WHERE NOT keyword IN ($lst)"なんてSQLを使っているのだが、
その処理が、Parser.pmの中で、"NOT keyword = ?{$num}?"の文 * $lstの個数に変換される。
そして、$lstの個数分(250ぐらい)の階層の再帰が行われ、再帰が深すぎてエラーになる。

Parser.pmの再帰をループ化すれば直るが、とりあえず今回は面倒なので、Parser.pmは止める。
通常のテキスト処理にSQLを使いたいのは変わらないので、そのうち修正する。