Are there any other ways of refactoring SQL-heavy code like this? In other words: is this approach reasonable, or are there pitfalls or better methods I didn't mention here?
Rather than putting just the SQL into another module, I would put all of the DB related code there using something like DBIx::AnyDBD. So rather than something like:
use StandardQueries; ... my $sth = $dbh->prepare(StandardQueries::get_username); ... # some code to get the username using the statement handle
I would have
use StandardQueries; ... my $username = $dbh->get_username($user_id);
In the first you're just hiding the SQL. In the second you're hiding the database and a lot of the schema.
In reply to Re: Impact of module size
by adrianh
in thread Impact of module size
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |