Array :: Comparar

Array :: Comparar es una extensión PERL para comparar matrices.
Descargar ahora

Array :: Comparar Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Dave Cross
  • Sitio web del editor:
  • http://search.cpan.org/~davecross/Array-Compare-1.14/lib/Array/Compare.pm

Array :: Comparar Etiquetas


Array :: Comparar Descripción

Array :: Comparar es una extensión de Perl para comparar matrices. SINOPSIS USE ARRAY :: Comparar; MY $ Comp1 = Array :: Compare-> Nuevo; $ comp-> sep ('|'); $ comp-> omitir ({3 => 1, 4 => 1}); $ comp-> espacios en blanco (0); $ comp-> caso (1); My $ Comp2 = Array :: Compara-> Nuevo (Sep => '|', Whitespace => 0, Case => 1, Skip => {3 => 1, 4 => 1}); mi @ arr1 = 0 .. 10; mi @ arr2 = 0 .. 10; $ comp1-> comparar (@ arr1, @ arr2); $ comp2-> Comparar (@ arr1, @ arr2); Si tiene dos matrices y desea saber si son iguales o diferentes, entonces la matriz :: Compare será útil para usted. Todas las comparaciones se realizan a través de un comparador objeto. En el uso más simple, puede crear y usar un objeto comparador como este: My @ Arr1 = 0 .. 10; mi @ arr2 = 0 .. 10; My $ comp = Array :: Compare-> Nuevo; Si ($ comp-> comparar (@ arr1, @ arr2)) {impresión "son los matrices"; } else {impresión "las matrices son diferentes"; } Observe que pasa las referencias a las dos matrices al método de comparación. Indentalmente, el comparador compara las dos matrices utilizando unirse para convertir ambas matrices en cadenas y comparar las cadenas utilizando EQ. En las cadenas unidas, los elementos de las matrices originales están separadas con el carácter ^ g. Esto puede causar problemas si sus datos de matriz contienen caracteres ^ g, ya que es posible que dos matrices diferentes puedan convertirse en la misma cadena. Para evitar esto, es posible anular el carácter separador predeterminado, ya sea al pasar y alternativa a la nueva. funcionar My $ comp = matry :: Compare-> Nuevo (Sep => '|'); o cambiando el separador de un objeto comparador existente $ comp-> sep ('|'); En general, debe elegir un carácter separador Eso no aparecerá en sus datos. También puede controlar si el espacio en blanco dentro de los elementos de las matrices debe considerarse significativo al hacer la comparación. El valor predeterminado es que todo el espacio en blanco es significativo. La alternativa es para que todos los caracteres de espacio en blanco consecutivos se conviertan a un solo espacio para las prupósiciones de la comparación. Nuevamente, esto se puede activar al crear un objeto comparador: My $ Comp = Array :: Compare-> Nuevo (Whitespace => 0); o alterando un objeto existente: $ comp-> espacios en blanco (0); también puedes controlar si el caso de los datos es significativo o no en la comparación. El valor predeterminado es que se tiene en cuenta el caso de los datos. Esto se puede cambiar de maneras estándar al crear un nuevo objeto comparador: My $ comp = matry :: Compare-> New (Case => 0); o alterando un objeto existente: $ comp-> caso (0); en Además de la simple comparación descrita anteriormente (que devuelve VERDADERO si las matrices son iguales y falsas, si son diferentes), también hay una comparación completa que devuelve una lista que contiene los índices de elementos que difieren entre las dos matrices. Si las matrices son las mismas, devuelve una lista vacía. En el contexto escalar, la comparación completa devuelve la longitud de esta lista (es decir, el número de elementos que difieren). Puede acceder a la comparación completa de dos maneras. En primer lugar, hay un atributo de defeFull. Si esto es cierto, entonces una comparación completa si se lleva a cabo cuando se llama el método de comparación. My $ comp = Array :: Compare-> Nuevo (Deffull => 1); $ comp-> comparar (@ arr1, @ arr2); # Comparación completa $ comp-> Deffull (0); $ comp-> comparar (@ arr1, @ arr2); # Comparación simple $ comp-> Deffull (1); $ comp-> comparar (@ arr1, @ arr2); # Comparación completa nuevamente en segunda mano, puede acceder al método de comparación completo directamente $ comp-> full_compare (@ arr1, @ arr2); Para la simetría, también hay un método directo para usar para llamar a la comparación simple. $ comp-> simple_compare (@ arr1, @ arr2); La complicación final es la capacidad de saltar elementos en la comparación. Si sabe que dos matrices siempre diferirán en un elemento en particular, pero desea comparar las matrices que ignoran este elemento, puede hacerlo con Array :: Comparar sin tomar rodajas de matriz. Para hacer esto, un objeto comparador tiene un atributo opcional llamado Skip, que es una referencia a un hash. Las teclas en este hash son los índices de los elementos de la matriz y los valores deben ser cualquier valor verdadero para los elementos que deben omitirse. Por ejemplo, si desea comparar dos matrices, ignorando los valores en los elementos dos y cuatro, puede hacer algo así: mi% SKIP = (2 => 1, 4 => 1); mi @a = (0, 1, 2, 3, 4, 5); mi @b = (0, 1, x, 3, x, 5); My $ comp = Array :: Compare-> Nuevo (Skip =>% Skip); $ comp-> Compare (@a, @b); Esto debería devolverle la verdad, ya que estamos ignorando explícitamente las columnas que difieren. Por supuesto, habiendo creado un objeto comparador sin hosth Skip, es posible agregar uno más tarde: $ comp-> omitir ({1 => 1, 2 => 1}); o: mi% SKIP = (1 => 1, 2 => 2); $ comp-> Omitir (% SKIP); Para restablecer el comparador para que ya no salte a los elementos, establezca el hash Skip a un hash vacío. $ comp-> omitir ({}); También puede verificar si una matriz es una permutación de otro, es decir, contienen los mismos elementos, pero en un orden diferente. Si ($ comp-> perma (@a, @ @a, @b) {impresión "son permsin"; else {imprimir "nop. Las matrices son completamente diferentes";} En este caso, los valores del espacio en blanco y el caso aún se usan, pero salta es ignorado por, con suerte, razones obvias.Requeamientos: · Perl


Array :: Comparar Software relacionado

Neem

Neem es una biblioteca que proporciona una implementación de la multidifusión epidémica. ...

148

Descargar