我想请perlcritic并在我的代码中轻松阅读SQL查询。目前我就是这样做的:
if (defined $dbh) {
$sth = $dbh->prepare(<<'SQL'
SELECT firstname, lastname, email, country
FROM Person
JOIN Country ON Person.countryID = Country.ID
WHERE age = ?
AND sex = ?
LIMIT 100
SQL
);
}
如果上下文缩进,则该语句不会缩进所有女巫使其弹出。我发现这很好,因为它可以很容易地发现stmt,它们被分成几行,使它们易于阅读。
但是,如果上下文没有缩进,这看起来很麻烦。如果可能的话,我不想在我的stmt中引入换行符或不必要的空格。另外,在stmt结尾处的SQL
和悬挂的);
也不是很好。
请提出一个关于此事的好的风格指南,我可以采用。
答案 0 :(得分:5)
我建议您切换到DBIx::Class,从而完全删除程序中的所有SQL。如果这有点可怕,那么可能是像Data::Phrasebook::SQL那样的中途房子。
通常,在Perl代码中使用原始SQL语句是一个非常糟糕的主意。