c:\@Work\Perl\monks>perl -wMstrict -le "use List::Util qw(max); use Data::Dump; ;; my @List1 = qw(a a b); my @List2 = qw(b b c); my @List3 = qw(c d d); ;; my @runs = do { my $cat = join '', @List1, @List2, @List3; my $s; grep $s = !$s, $cat =~ m{ ((.) \2*) }xmsg; }; ;; my $max_pad = -1 + max map length, @runs; my $padding = '-' x $max_pad; ;; my @padded = map [ unpack qq{a (a)$max_pad}, $_ . $padding ], @runs; dd \@padded; " [ ["a", "a", "-"], ["b", "b", "b"], ["c", "c", "-"], ["d", "d", "-"], ]