Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I'm attempting to get all rows from a CSV file where a specific column is not null. Unfortunately, I'm only getting 1 row back.
For example, I'd like only rows 5, 7, and 9 to be printed.
row 1-4 : myColumn is null
row 5 : myColumn = 'ABC'
row 6 : myColumn is null
row 7 : myColumn = 'CDE'
row 8 : myColumn is null
row 9 : myColumn is 'EFG'
My expected results are:
ABC
CDE
EFG
Instead, my results are:
ABC
Here's the code I am using:
my $parser = Parse::CSV->new( file => $CSV_File, sep_char => ',', names => 1, filter => sub { $_->{myColumn} ? $_ : undef } ); while ( my $row = $parser->fetch ) { my $myColumn_value = $row->{'myColumn'}; print ("$myColumn_value"); }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Filtering rows with Parse::CSV
by AppleFritter (Vicar) on Mar 27, 2017 at 18:07 UTC | |
|
Re: Filtering rows with Parse::CSV
by toolic (Bishop) on Mar 27, 2017 at 18:14 UTC | |
by Tetris78 (Initiate) on Mar 27, 2017 at 18:44 UTC | |
by tangent (Parson) on Mar 27, 2017 at 21:24 UTC | |
by poj (Abbot) on Mar 27, 2017 at 21:31 UTC | |
by Tetris78 (Initiate) on Mar 29, 2017 at 14:47 UTC | |
|
Re: Filtering rows with Parse::CSV
by Tetris78 (Initiate) on Mar 27, 2017 at 18:08 UTC |