in reply to Removing doubles and printing only unique values
Thanks for the replies everyone!
This is the code I eventually ended up with:
use strict; use warnings; use autodie; my $input = 'D:/Some/Specific/Path/To/Input.CSV'; my $output = 'D:/Some/Specific/Path/To/Output.CSV'; open IN,$input; binmode(IN); open OUT,'>'.$output; my $count = 0; my @vk; my %seen; while (my $line = <IN>) { chomp $line; next if $. < 2; (undef, my $vk) = split ";" , $line; push (@vk,$vk) unless $seen{$vk}++; } close IN; for my $vk (@vk) { if ($count != 10) { print OUT $vk.';'; ++ $count; } else { print OUT "\n"; $count = 0; } } close OUT; exit 0;
Minimal amount of changes to my last version of the script and keeps it looking clean.
Have looked up quite a bit about filtering out double values but don't think I have come across that $seen{$vk}++ technique. Will definitely be able to use that more often, seems pretty easy to use and powerful when needing to do something like this.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Removing doubles and printing only unique values
by holli (Abbot) on Oct 31, 2017 at 14:09 UTC | |
by Anonymous Monk on Oct 31, 2017 at 15:18 UTC | |
|
Re^2: Removing doubles and printing only unique values
by AnomalousMonk (Archbishop) on Oct 31, 2017 at 15:07 UTC | |
|
Re^2: Removing doubles and printing only unique values
by AnomalousMonk (Archbishop) on Oct 31, 2017 at 15:37 UTC |