my %unique; @unique{ split /,\s*/, ( split /\|/ )[2] } = () while (); my @unique_names = keys %unique; 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