use Modern::Perl; use Data::Dump qw/dump/; use SQL::Abstract; use DBI; my $dbh = DBI->connect( 'dbi:CSV:', '', '', { f_dir => './DB/', csv_sep_char => "\t", } ) or die "Cannot connect: $DBI::errstr"; my @where; { my $query = 'SELECT * FROM filter_file ORDER BY orde'; my $sth = $dbh->prepare($query); $sth->execute(); while ( my $row = $sth->fetchrow_hashref ) { push @where, { $row->{'column'} => { $row->{'relationship'} => $row->{'value'} } }; } $sth->finish(); } my $sql = SQL::Abstract->new; my ( $where, @bind ) = $sql->where( \@where ); { my $query = "SELECT a, b, c FROM input $where"; my $sth = $dbh->prepare($query); $sth->execute(@bind); while ( my $row = $sth->fetchrow_hashref ) { say dump($row); } $sth->finish(); }