my %lineFileContains; my @r = (); open my $fh, "ZaaFile" or die "open failed: $!"; my $line; while ($line = <$fh>) { chomp (@r = split/\s+/); push @{$lineFileContains{$r[3]}}, [@r[4..$#r]]; } close $fh; foreach (reverse sort keys %lineFileContains) { print "$_"; foreach (@{$lineFileContains{$_}}) { print "\t$_->[3]\t$_->[4]\n"; } } data ---- A 234453234324 Hlell Sam Two #### Sam Two