I have an array @name with the below contents (index 7 and 8 are names):
1|1|2|2|I|2|0|DUNN|LACY||||||
2|2|2|2|I|2|0|KOFE|ROGER||||||
3|3|2|2|A|2|0|KOFOED|ROBERT||||||
3|4|2|2|A|2|0|KOFOED|ROBERT||||||
3|5|2|2|A|2|0|KOFOED|ROBERT||||||
2|7|2|2|I|2|0|WILLIAMSON|JAMES||||||
3|8|2|2|I|2|0|MUNN|MARION||||||
4|9|2|2|A|2|0|BLOCK|ROY||||||
I want to remove the duplicates, from the list @name:
1|1|2|2|I|2|0|DUNN|LACY||||||
2|2|2|2|I|2|0|KOFE|ROGER||||||
3|3|2|2|A|2|0|KOFOED|ROBERT||||||
2|7|2|2|I|2|0|WILLIAMSON|JAMES||||||
3|8|2|2|I|2|0|MUNN|MARION||||||
4|9|2|2|A|2|0|BLOCK|ROY||||||
I need help with a unique list of names (ignore the other fields).
Thanks,
What programming language you're using?
I'm not sure if this is an array or input.
Anyway, consider the following approach:
#! /usr/bin/perl
use warnings;
use strict;
my %Seen;
while (<DATA>) {
print unless $Seen{(split /\|/)[7,8]}++;
}
__DATA__
1|1|2|2|I|2|0|DUNN|LACY||||||
2|2|2|2|I|2|0|KOFE|ROGER||||||
3|3|2|2|A|2|0|KOFOED|ROBERT||||||
3|4|2|2|A|2|0|KOFOED|ROBERT||||||
3|5|2|2|A|2|0|KOFOED|ROBERT||||||
2|7|2|2|I|2|0|WILLIAMSON|JAMES||||||
3|8|2|2|I|2|0|MUNN|MARION||||||
4|9|2|2|A|2|0|BLOCK|ROY||||||
Which produces:
$ ./p
1|1|2|2|I|2|0|DUNN|LACY||||||
2|2|2|2|I|2|0|KOFE|ROGER||||||
3|3|2|2|A|2|0|KOFOED|ROBERT||||||
2|7|2|2|I|2|0|WILLIAMSON|JAMES||||||
3|8|2|2|I|2|0|MUNN|MARION||||||
4|9|2|2|A|2|0|BLOCK|ROY||||||
You may try join '|', (split /\|/)[7,8] as a hash key for more precise processing.