use SQL::Abstract; my $sa = SQL::Abstract->new( logic=>'and' ); my($sql, @bind) = $sa->select( 'special_fields', [qw/ engine name1 name2 name3 name4 lable1 lable2 lable3 lable4 settings1 settings2 settings3 settings4 /], [ { engine => \@choices, }, [ settings1 => 'public', settings2 => 'public', settings3 => 'public', settings4 => 'public', ] ], ); my $rows = $dbh->selectall_arrayref( $sql, {Slice=>{}}, @bind );