Using bind variables is important when creating SQL statements because they provide protection against SQL injection attacks. SQL::Abstract made a worthy effort to generate SQL and bind variables, but failed to handle complex cases, as well as using a syntax that could be unintuitive.
SQL::Interpolate is a next-generation solution for SQL generation with a perfect balance of expression between direct SQL manipulation and Perlish shorthands. You can use as much direct SQL wherever you like with SQL::Interpolate, making easy work complex 'WHERE' clauses with combinations of nested 'AND' and 'OR' bits.
It has abstraction levels to suit most anyone's tastes. You can simply generate SQL and bind variables if you like. You may also use it as a value-added wrapper around DBI. For the adventurous, a source filtering option is available, providing the easiet interface, at the risk of difficult to track bugs.
David Manura has been very thoughtful about the design and production of this module. Although this is the first release, I would declare it a "1.0" release myself, rather than the modest "0.3" David has assigned it.
Highly recommended for SQL generation.
(disclaimer: I contributed to this module, and to SQL::Abstract before I found this one. )