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(); }