use DBI; $dbh = DBI->connect("DBI:CSV:") or die "Cannot connect: " . $DBI::errstr; $dbh->{'csv_tables'}->{'data'} = { 'file' => 'data.csv'}; # Find the matching rows in the table $sth = $dbh->prepare('SELECT * FROM data ' . 'WHERE column1 = ? AND column2 = ? ' . 'AND column7 = ? AND column5 = ?', $one, $two, $three, $four) or die "Cannot prepare: " . $dbh->errstr(); $sth->execute() or die "Cannot execute: " . $sth->errstr(); my($id, $name); $sth->bind_columns(undef, \$id, \$name); while ($sth->fetch) { # Print the name and id of each matching row printf("Found result row: id = %s, name = %s\n", defined($id) ? $id : "NULL", defined($name) ? $name : "NULL"); } $sth->finish(); $dbh->disconnect();