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