sub all{ my @seq1 = split / +/, $_[0]; my @seq2 = split / +/, $_[1]; my $idx = LCSidx( \@seq1, \@seq2 ); my @result = (' ') x @seq1; @result[@$idx] = @seq1[@$idx]; return split / {2,}/, join ' ', @result; #in order seen #or return sort {length $b <=> length $a} split / {2,}/, join ' ', @result; #sorted by length }