in reply to Checking SQL Syntax

Different databases or DBDs divide up the work between prepare and execute differently. Why do you want to do the precheck, anyway? Why not just execute?

You could do (untested:)

my $ok = $dbh->do("explain $sql");