use Algorithm::Diff qw( LCS_length ); sub in_list { # Returns true if lsa is a proper subsequence of lsb my ($lsa, $lsb) = @_; return LCS_length($lsa, $lsb) == @$lsa; } #### sub in_list { # Returns true if lsa is a proper subsequence of lsb my ($lsa, $lsb) = @_; my $ia = 0; my $ib = 0; for (;;) { return 1 if $ia == @$lsa; return 0 if $ib == @$lsb; ++( $lsa->[$ia] eq $lsb->[$ib] ? $ia : $ib ); } }