use warnings; use strict; use Data::Dump::Streamer; my @data = ; my %dataPos; chomp @data; push @{$dataPos{$data[$_]}}, $_ for 0 .. $#data; Dump (\%dataPos); __DATA__ WELL TOTAL QUALITY POSITION NAME TOTAL QUALITY POSITION NAME