Now I tried an 'if' command within the 'while' statement to match up an email, then increment it's '$post' variable once it hit a specified address (a test of the function I need to do) and all it did was increment everyone's post count. At this point, I wonder if I'm on the right track. Should I even be pulling the value into the script, or should I be looking at an 'update' command of some sort? I've read elsewhere that someone just read each line into an array and went from there, but that sounds like a lot of overhead to read it each time. Likewise, I'd be concerned about holding the whole table in memory in the event of an error during the process.#!/usr/bin/perl -w use strict; use DBI; use File::Basename; my $dir = '.'; my $file = 'memberlist.csv'; my $table = (fileparse($file,'.csv'))[0]; my $cols = [qw(Username Email Posts EmailSet Group Unknown Date Times +tamp Password MD5)]; my $sep = ','; my $dbh = DBI->connect( "DBI:CSV:f_dir=$dir;csv_eol=\n;csv_sep_char=$sep;", {RaiseError=>1},); $dbh->{csv_tables}->{$table} = { file => $file, col_names => $cols,}; my $sth = $dbh->prepare("SELECT Username, Email, Posts, Timestamp +FROM memberlist"); $sth->execute() or die "Cannot execute: " . $sth->errstr(); while ( ( my $Username, my $Email, my $Posts, my $Timestamp) = $st +h->fetchrow_array) { print "$Username, $Email, $Posts, $Timestamp\n"; } $sth->finish();
In reply to Re^3: CSV files: Searching, manipulating data, appending and saving.
by SpacemanSpiff
in thread CSV files: Searching, manipulating data, appending and saving.
by SpacemanSpiff
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |