##
foreach (reverse @sorted_data) {
unshift(@data_out, $_) unless ($seen{substr($_,0,7)}++);
}
####
@data_out = nub(@sorted_data);
sub nub
{
my @xs=@_; my $x=pop @xs;
return $x unless @xs;
return (nub(grep {substr($x,0,7) ne substr($_,0,7)} @xs), $x);
}