Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Variable/multiple matches using grep

by idsfa (Vicar)
on Aug 11, 2006 at 17:39 UTC ( #566896=note: print w/replies, xml ) Need Help??

in reply to Variable/multiple matches using grep

I do not recommend using regular expressions to parse a CSV. What happens if part of the input includes a comma? In the Massive Overkill department, I would suggest using DBD::CSV:

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();

The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. — Cyrus H. Gordon

Replies are listed 'Best First'.
Re^2: Variable/multiple matches using grep
by Anonymous Monk on Aug 14, 2006 at 11:46 UTC
    Thanks will have a look at the DBD::CSV module. I would strip out any comma's but here the values are in drop downs so I can specify these.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://566896]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2017-07-21 17:07 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (330 votes). Check out past polls.