The word unique nearly always call for a hash to be used. The solutiom is to extract the names, then to use them as (unique) keys to a hash.
#!/bin/perl -w use strict; my %unique_names; # this is the hash while( <DATA>) { my @values= split /\|/; # extract the fields (don't + forget to backslash the |) my @names= split /,\s*/, $values[2]; # extract the names foreach my $name (@names) { $unique_names{$name}++; } # we don't really care abou +t the value, just the key } my @unique_names= keys %unique_names; # put the names back into a +n array print join "-", @unique_names; print "\n"; __DATA__ value 1|value 2|tom, chris, dave|value 4 value 1|value 2|peter, tom, dave|value 4
In reply to Re: creating unique list from elements in an array
by mirod
in thread creating unique list from elements in an array
by rimmern
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |