While I appreciate the pointer to
SQL::Parser (I am its author), I have to say that it is not the module you want in this case - it is for de-constructing SQL into perl structures, not for constructing SQL from perl structures. I would recommend you look at modules like
SQL::Abstract,
SQL::Interpolate, and
SQL::String which are for *building* SQL rather than parsing it. All of these modules support use of placeholders and will automtatically create the placeholders and bind-value lists from the perl structures.