sorry about the typo :)
text to csv code which is
use Text::CSV;
my @rows;
my $csv = Text::CSV->new ( { binary => 1 } ) # should set binary att
+ribute.
or die "Cannot use CSV: ".Text::CSV->error_diag ();
open my $fh, "<:encoding(utf8)", "test.csv" or die "test.csv: $!";
while ( my $row = $csv->getline( $fh ) ) {
$row->[2] =~ m/pattern/ or next; # 3rd field should match
push @rows, $row;
}
$csv->eof or $csv->error_diag();
close $fh;
$csv->eol ("\r\n");
open $fh, ">:encoding(utf8)", "new.csv" or die "new.csv: $!";
$csv->print ($fh, $_) for @rows;
close $fh or die "new.csv: $!";
#
# parse and combine style
#
$status = $csv->combine(@columns); # combine columns into a string
$line = $csv->string(); # get the combined string
$status = $csv->parse($line); # parse a CSV string into field
+s
@columns = $csv->fields(); # get the parsed fields
$status = $csv->status (); # get the most recent status
$bad_argument = $csv->error_input (); # get the most recent bad argum
+ent
$diag = $csv->error_diag (); # if an error occured, explains
+ WHY
$status = $csv->print ($io, $colref); # Write an array of fields
# immediately to a file $io
$colref = $csv->getline ($io); # Read a line from file $io,
# parse it and return an array
# ref of fields
$csv->column_names (@names); # Set column names for getline_
+hr ()
$ref = $csv->getline_hr ($io); # getline (), but returns a has
+href
$eof = $csv->eof (); # Indicate if last parse or
# getline () hit End Of File
$csv->types(\@t_array); # Set column types
there is a demarcation on this line # parse and combine style. so like is this entire code helps in converting text to csv or just a part of it |