CSV-Processor

 view release on metacpan or  search on metacpan

bin/csvjoin  view on Meta::CPAN

$csv->column_names(@cols);
$csv->print_hr( $fh, $_ ) for @data_in_new_csv;
close $fh or die "$opts{out_file}: $!";

say "Total records in : " . $nb_rows                 if $opts{verbose};
say "Total records out : " . scalar @data_in_new_csv if $opts{verbose};
say "Repeated records : " . $repeated_records        if $opts{verbose};
my $duplicates = $nb_rows - scalar @data_in_new_csv;
say "Total duplicates : " . $duplicates if $opts{verbose};

my $percentage = ( $duplicates / $nb_rows ) * 100;
printf( "CSV reduce percentage : %.2f \n", $percentage ) if $opts{verbose};

# Text::AutoCSV: error: illegal call while read is in progress, would lead to infinite recursion

# $csv->set_walker_hr(sub {
#     my $hr = shift;
#     my $found_ar = $csv->search( $opts{unique_column}, $hr->{ $opts{unique_column} } );
#     my $row_hr = $csv->get_row_hr( $found_ar->[0] );
#
#     if ( scalar @$found_ar > 1 ) {
#         my @a;



( run in 0.359 second using v1.01-cache-2.11-cpan-624ce96ca49 )