my $clause1 = ''; if ($some_condition) { $clause1 = <<'END_SQL'; AND a.somedata5 <= ? AND [...] END_SQL my $clause2 = ''; if ($some_condition) { $clause2 = <<'END_SQL'; AND b.somedata6 >= ? [...] END_SQL my $order_by = ''; if ($some_condition) { $order_by = <<'END_SQL'; ORDER BY somedata7 END_SQL my $sql = < ? $clause1 $clause2 $order_by END_SQL