地味なんだけど、同じ Perl DBI なのに MySQL と SQLite で挙動が違っていてハマった点:MySQL で SELECT した後、SELECT の取得結果があるかどうかをステートメントハンドルオブジェクトの rows メソッドを使い「if ($sth->rows)」などでチェックしていたが、SQLite だとこれが効かず、SELECT できた場合でも 0 が返る。『入門 Perl DBI』によるとSELECT 文に対しては、すべてをフェッチすることを除いて、返される行数を知ることはできない。(中略) したがって、SELECT 文に rows メソッドや DBI::rows を利用することは勧められない。とのこと。MySQL の時はたまたま使えているということか。SQLite の場合、$dbh->commit や $dbh->disconnect する前に、SELECT に使