The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# one.pl
# simple tests of SQL::Interpolate.

use strict;
use Data::Dumper;
use SQL::Interpolate qw(:all);

my @colors = ('blue', 'green');
my $x = 5;
my($sql, @bind) = sql_interp qq[
    SELECT * FROM table
    WHERE color IN], \@colors, qq[
          AND y = ], \$x,
    "LIMIT", \10, "OFFSET", \0
;
print "$sql\n" . Dumper(\@bind);

@colors = ();
($sql, @bind) = sql_interp qq[
    SELECT * FROM table
    WHERE color IN], \@colors, qq[
          AND y = ], \$x,
    "LIMIT", \10, "OFFSET", \0
;
print "$sql\n" . Dumper(\@bind);

my $new_color = 'red';
my $new_shape = 'square';
($sql, @bind) = sql_interp qq[
    INSERT INTO table ], {
        color => $new_color,
        shape => $new_shape}
;
print "$sql\n" . Dumper(\@bind);

my $color = 'yellow';
($sql, @bind) = sql_interp qq[
    UPDATE table SET ], {
        color => $new_color,
        shape => $new_shape}, qq[
    WHERE color <> ], \$color
;
print "$sql\n" . Dumper(\@bind);