use List::MoreUtils qw( pairwise ); my @arr = qw( J K L M N O ); my %done; my @pairs = grep !$done{$_}++, # Remove duplicates pairwise { "$a - $b" } @arr; print map "$_\n", @pairs;