如何格式化perl中的SQL语句(代码样式)

时间:2015-07-21 08:22:27

标签: perl coding-style

我想请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和悬挂的);也不是很好。

请提出一个关于此事的好的风格指南,我可以采用。

1 个答案:

答案 0 :(得分:5)

我建议您切换到DBIx::Class,从而完全删除程序中的所有SQL。如果这有点可怕,那么可能是像Data::Phrasebook::SQL那样的中途房子。

通常,在Perl代码中使用原始SQL语句是一个非常糟糕的主意。