use strict; use Text::CSV; my $csv = Text::CSV->new (); my %unique_records; while (my $record = ) { $csv->parse($record) or die "Could not parse $record"; my @columns = $csv->fields(); s/.*=\s*(.*)/$1/ for @columns; print "$columns[0],$columns[1],$columns[4]\n" unless $unique_records{$columns[1]}++ ; } __DATA__ Id=1,DE RecName: Full=anahnata,DE RecName: Full=deals,DE RecName: Full=buy, Type = cat Id=2,DE RecName: Full=hahhhhaa,DE RecName: Full=sure,DE RecName: Full=sue, Type = dog Id=3,DE RecName: Full=anahnata,DE RecName: Full=deals,DE RecName: Full=buy, Type = cat Id=4,DE RecName: Full=hihahiha,DE RecName: Full=sure,DE RecName: Full=sue, Type = horse Id=5,DE RecName: Full=anahnata,DE RecName: Full=deals,DE RecName: Full=buy, Type = cat Id=6,DE RecName: Full=hahhhhaa,DE RecName: Full=sure,DE RecName: Full=sue, Type = dog