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 )