end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

perlヒアドキュメント内のsqlコメントは「-- 〜」でなく「/* 〜 */」で

sub get_hoge {
    my ($self) = @_;

    my $sql =<<EOF;
SELECT *
FROM
test_table
WHERE
(col,co2) IN               -- 複数のカラムを指定
  (SELECT  subcol1,subcol2 -- 副問いの戻り値も複数のカラムを指定
   FROM  subtable
   WHERE id > 10 )
EOF
    my $sth = $self->dbh->prepare($sql);
    unless($sth->execute()){
        $self->error( $sth->errstr);
        return undef;
    }
    return $sth->fetchrow_hashref();
}

のようにヒアドキュメント「EOF; 〜 EOF」内で、sqlコメントアウトを「-- 〜」で書くと、prepare()時にエラーになります。

sub get_hoge {
    my ($self) = @_;

    my $sql =<<EOF;
sub get_hoge {
    my ($self) = @_;

    my $sql =<<EOF;
SELECT *
FROM
test_table
WHERE
(col,co2) IN               /* 複数のカラムを指定 */
  (SELECT  subcol1,subcol2 /* 副問いの戻り値も複数のカラムを指定 */
   FROM  subtable
   WHERE id > 10 )
EOF
    my $sth = $self->dbh->prepare($sql);
    unless($sth->execute()){
        $self->error( $sth->errstr);
        return undef;
    }
    return $sth->fetchrow_hashref();
}

のようにsqlコメントアウトを「/* 〜 */ 」で書くとよいみたい。