Array :: Compare.

Array :: Compare é uma extensão Perl para comparar matrizes.
Baixe Agora

Array :: Compare. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Perl Artistic License
  • Preço:
  • FREE
  • Nome do editor:
  • Dave Cross
  • Site do editor:
  • http://search.cpan.org/~davecross/Array-Compare-1.14/lib/Array/Compare.pm

Array :: Compare. Tag


Array :: Compare. Descrição

Array :: Compare é uma extensão Perl para comparar matrizes. Sinopse Use Array :: Compare; Meu $ comp1 = Array :: Compare-> Novo; $ comp-> set ('|'); $ comp-> pule ({3 => 1, 4 => 1}); $ comp-> espaços em branco (0); $ comp-> caso (1); Meu $ comp2 = Array :: Comparar-> Novo (Sep => '|', WhiteSpace => 0, caso => 1, skip => {3 => 1, 4 => 1}); meu @ ar1 = 0 .. 10; meu @ arr2 = 0 .. 10; $ comp1-> Comparar (@ ar1, @ ar2); $ comp2-> Comparar (@ arr1, @ arr1); se você tiver duas matrizes e quer saber se eles são iguais ou diferentes, então array :: comparar será útil para você. As comparações são realizadas através de um comparador objeto. No uso mais simples, você pode criar e usar um objeto comparador como este: meu @ ar1 = 0. 10; meu @ arr2 = 0 .. 10; Meu $ comp = Array :: Compare-> Novo; if ($ comp-> comparar (@ ar1, @ arr2)) {print "matrizes são os samen"; } else {Imprimir "matrizes são diferentesN"; } Observe que você passa referências às duas matrizes para o método de comparação. No entanto, o comparador compara as duas matrizes usando a junção para transformar ambos os matrizes em seqüências de caracteres e comparar as cordas usando a Eq. Nas cordas unidas, os elementos das matrizes originais são separados com o caractere ^ g. Isso pode causar problemas se seus dados de matriz contiver caracteres ^ g, pois é possível que duas matrizes diferentes possam ser convertidas na mesma string. Para evitar isso, é possível substituir o caractere separador padrão, passando e alternativa ao novo Função Meu $ Comp = Array :: Compare-> Novo (Sep =>> '|'); ou alterando o separador para um objeto comparador existente $ comp-> set ('|'); em geral, você deve escolher um caractere de separador Isso não aparecerá em seus dados. Você também pode controlar se o espaço em branco dentro dos elementos das matrizes deve ser considerado significativo ao fazer a comparação. O padrão é que todo espaço em branco é significativo. A alternativa é para todos os caracteres consecutivos de espaço em branco a serem convertidos em um único espaço para as próprias pessoas da comparação. Mais uma vez, isso pode ser ligado ao criar um objeto Comparador: My $ comp = Array :: Comparar-> Novo (espaço em branco => 0); ou alterando um objeto existente: $ comp-> espaços em branco (0); você também pode Controle se o caso dos dados é significativo na comparação. O padrão é que o caso de dados é levado em conta. Isso pode ser alterado nas maneiras padrão ao criar um novo objeto Comparador: Meu $ comp = Array :: Comparar-> Novo (caso => 0); ou alterando um objeto existente: $ comp-> caso (0); em Além da comparação simples descrita acima (que retorna true se as matrizes forem as mesmas e falsas se forem diferentes), há também uma comparação completa que retorna uma lista contendo os índices de elementos que diferem entre os dois arrays. Se as matrizes forem as mesmas, ele retornará uma lista vazia. Em contexto escalar, a comparação completa retorna o comprimento desta lista (isto é, o número de elementos que diferem). Você pode acessar a comparação completa de duas maneiras. Em primeiro lugar, há um atributo deffetl. Se isso for verdade, uma comparação completa se realizada sempre que o método Comparar for chamado. Meu $ comp = Array :: Compare-> Novo (Deffull => 1); $ comp-> comparar (@ ar1, @ arr2); # Comparação completa $ comp-> Deffull (0); $ comp-> comparar (@ ar1, @ arr2); # Comparação simples $ comp-> Deffull (1); $ comp-> comparar (@ ar1, @ arr2); # Comparação completa novamente, você pode acessar o método de comparação completo diretamente $ comp-> full_compare (@ ar1, @ arr2); para simetria, há também um método direto para usar para chamar a comparação simples. $ comp-> Simple_compare (@ ar1, @ arr2); a complicação final é a capacidade de ignorar elementos na comparação. Se você souber que duas matrizes serão sempre diferentes em um determinado elemento, mas querem comparar as matrizes ignorando este elemento, você pode fazer isso com array :: comparar sem levar fatias de matriz. Para fazer isso, um objeto Comparador tem um atributo opcional chamado Skip, que é uma referência a um hash. As chaves nesse hash são os índices dos elementos da matriz e os valores devem ser qualquer valor verdadeiro para elementos que devem ser ignorados. Por exemplo, se você quiser comparar duas matrizes, ignorando os valores em elementos dois e quatro, você pode fazer Algo como este: meu% skip = (2 => 1, 4 => 1); meu @a = (0, 1, 2, 3, 4, 5); meu @b = (0, 1, x, 3, x, 5); Meu $ comp = Array :: Compare-> Novo (Skip =>% Skip); $ comp-> Compare (@a, @b); isso deve retornar true, pois estamos explicitamente ignorando as colunas que diferem do curso, tendo criado um objeto comparador sem hash de skip, é possível adicionar um posterior: $ comp-> pule ({1 => 1, 2 => 1}); ou: my% skip = (1 => 1, 2 => 2); $ comp-> pule (% skip); para redefinir o comparador para que não piquete mais elementos, defina o hash de pular para um hash vazio. $ comp-> pule ({}); você também pode verificar se uma matriz é uma permutação de outra, isto é, eles contêm os mesmos elementos, mas em uma ordem diferente. if ($ comp-> perm (@a, @b) {print "matrizes são Permsn"; else {Imprimir "Não. Matrizes são completamente diferentesn";} Neste caso, os valores de espaço em branco e o caso ainda são usados, mas pule é ignorado, esperançosamente, razões óbvias.Requirements: · Perl


Array :: Compare. Software Relacionado

Neem.

Neem é uma biblioteca que fornece uma implementação de multicast epidêmica. ...

148

Download