#!/usr/bin/env perl use strict; use warnings; use LCS::XS; my @data = map { /(\d+)/g } <>; my @odata = sort { $a <=> $b } @data; my $alg = LCS::XS->new; my @diff = $alg->LCS( \@data, \@odata ); # returns pairs or indices # select elements with matching indices from data my @subseq = map { $data[ $_->[0] ] } @diff; print "@subseq\n"; # select same elements but from ordered data - result is identical @subseq = map { $odata[ $_->[1] ] } @diff; print "@subseq\n";