http://www.perlmonks.org?node_id=977786


in reply to edit a CSV and "in-place" replacement

DBD::CSV. Assuming "foo.csv" and a header line where the first (key) field is c_foo and the header for column 35 is "tel" (untested, but you get the drift):

my $dbh = DBI->connect ("dbi:CSV:", undef, undef, { RaiseError => 1, PrintError => 1, f_dir => "/test/foo", f_ext => ".csv/r", f_encoding => "urf-8", }); my $stu = $dbh->prepare ("update foo set tel = ? where c_foo = ?"); my $sth = $dbh->prepare ("select c_foo, tel from foo"); $sth->execute; $sth->bind_columns (\my ($c_foo, $tel)); while ($sth->fetch) { $tel =~ s/^0/+91/ and $stu->execute ($tel, $c_foo); } $dbh->commit;

Enjoy, Have FUN! H.Merijn

Replies are listed 'Best First'.
Re^2: edit a CSV and "in-place" replacement
by slayedbylucifer (Scribe) on Jun 22, 2012 at 07:57 UTC
    Thanks Tux. Your reply got me thinking about using the CSV module and how to leverage it for more complex operation. thanks for your input.