Array :: Confronta.

Array :: Confronta è un'estensione perl per confrontare gli array.
Scarica ora

Array :: Confronta. Classifica e riepilogo

Annuncio pubblicitario

  • Rating:
  • Licenza:
  • Perl Artistic License
  • Prezzo:
  • FREE
  • Nome editore:
  • Dave Cross
  • Sito web dell'editore:
  • http://search.cpan.org/~davecross/Array-Compare-1.14/lib/Array/Compare.pm

Array :: Confronta. Tag


Array :: Confronta. Descrizione

Array :: Confronta è un'estensione perl per confrontare gli array. Sinossi utilizza l'array :: confronta; My $ Comp1 = Array :: Confronta-> Nuovo; $ Comp-> Sep ('|'); $ Comp-> Skip ({3 => 1, 4 => 1}); $ comp-> spazi bianchi (0); $ comp-> custodia (1); My $ Comp2 = Array :: Confronta-> Nuovo (Sep => '|', WhiteSpace => 0, caso => 1, skip => {3 => 1, 4 => 1}); my @ arr1 = 0 .. 10; my @ arr2 = 0 .. 10; $ Comp1-> Confronta (@ ARR1, @ ARR2); $ Comp2-> Confronta (@ ARR1, @ ARR2); se hai due array e vuoi sapere se sono uguali o diversi, allora array :: Confronta sarà utile per te. Tutti i confronti vengono effettuati tramite un comparatore oggetto. Nell'utilizzo più semplice, è possibile creare e utilizzare un oggetto comparatore come questo: My @ ARR1 = 0 .. 10; my @ arr2 = 0 .. 10; My $ Comp = Array :: Confronta-> Nuovo; Se ($ Comp-> Confronta (@ ARR1, @ ARR2)) {Stampa "Gli array sono i Samen"; } else {stampa "gli array sono diversi"; } Si noti che si passano i riferimenti alle due array al metodo di confronto. Innantalamente il comparatore confronta i due array utilizzando i due array utilizzando join per trasformare entrambe le array in stringhe e confrontando le stringhe usando EQ. Nelle stringhe unite, gli elementi degli array originali sono separati con il personaggio ^ g. Questo può causare problemi se i dati dell'array contengono caratteri ^ g poiché è possibile che due diversi array possano essere convertiti nella stessa stringa. Per evitare ciò, è possibile sovrascrivere il carattere del separatore predefinito, passando e alternativo al nuovo Funzione My $ Comp = Array :: Confronta-> Nuovo (Sep => '' | '); o modificando il separatore per un oggetto comparatore esistente $ Comp-> Sep (' | '); in generale dovresti scegliere un personaggio separatore Ciò non apparirà nei tuoi dati. Puoi anche controllare se lo spazio bianco all'interno degli elementi degli array dovrebbe essere considerato significativo quando si effettua il confronto. L'impostazione predefinita è che tutto lo spazio bianco è significativo. L'alternativa è per tutti i caratteri di spazio bianco consecutivo da convertire in un unico spazio per i pruposi del confronto. Di nuovo, questo può essere acceso quando si crea un oggetto comparatore: My $ Comp = array :: Confronta-> nuovo (spazi bianchi => 0); o alterando un oggetto esistente: $ Comp-> WhitSpace (0); puoi anche Controllare se il caso dei dati sia significativo nel confronto. L'impostazione predefinita è che il caso dei dati viene preso in considerazione. Questo può essere cambiato nei modi standard durante la creazione di un nuovo oggetto di comparatore: My $ Comp = Array :: Confronta-> Nuovo (caso => 0); o modificando un oggetto esistente: $ Comp-> custodia (0); in Oltre al semplice confronto sopra descritto (che restituisce true se gli array sono gli stessi e falsi se sono diversi) c'è anche un confronto completo che restituisce un elenco contenente gli indici degli elementi che differiscono tra i due array. Se gli array sono gli stessi restituisce un elenco vuoto. Nel contesto scalare il confronto completo restituisce la lunghezza di questo elenco (cioè il numero di elementi che differiscono). Puoi accedere al pieno confronto in due modi. Innanzitutto, c'è un attributo Deffull. Se questo è vero, un confronto completo se effettuato ogni volta che viene chiamato il metodo Confronto. My $ Comp = Array :: Confronta-> Nuovo (Deffull => 1); $ Comp-> Confronta (@ ARR1, @ ARR2); # Confronto completo $ comp-> deffull (0); $ Comp-> Confronta (@ ARR1, @ ARR2); # Semplice confronto $ comp-> deffull (1); $ Comp-> Confronta (@ ARR1, @ ARR2); # Confronto completo Ancoraggio, è possibile accedere al metodo di confronto completo direttamente $ Comp-> full_compare (@ ARR1, @ ARR2); per simmetria, c'è anche un metodo diretto da utilizzare per chiamare il semplice confronto. $ Comp-> Simple_compare (@ ARR1, @ ARR2); la complicazione finale è la capacità di saltare gli elementi nel confronto. Se sai che due array differiscono sempre in un elemento particolare, ma vuoi confrontare gli array che ignorano questo elemento, puoi farlo con array :: Confronta senza prendere fette di array. Per fare ciò, un oggetto comparatore ha un attributo opzionale chiamato Skip che è un riferimento a un hash. I tasti in questo hash sono gli indici degli elementi dell'array e i valori dovrebbero essere qualsiasi valore reale per elementi che dovrebbero essere saltati. Per esempio, se si desidera confrontare due array, ignorando i valori negli elementi due e quattro, puoi farlo qualcosa del genere: il mio% skip = (2 => 1, 4 => 1); my @a = (0, 1, 2, 3, 4, 5); my @b = (0, 1, x, 3, x, 5); My $ Comp = Array :: Confronta-> Nuovo (Skip =>% Skip); $ Comp-> Confronta (@a, @b); questo dovrebbe restituire true, poiché ignoriamo esplicitamente le colonne che differiscono. Corso, avendo creato un oggetto comparatore senza skip hash, è possibile aggiungere uno dopo: $ Comp-> Skip ({1 => 1, 2 => 1}); o: my% skip = (1 => 1, 2 => 2); $ Comp-> Skip (% skip); per ripristinare il comparatore in modo che non salti più elementi, impostare il salto hash su un hash vuoto. $ Comp-> Skip ({}); puoi anche verificare se un array è una permutazione di un altro, cioè contengono gli stessi elementi ma in un ordine diverso. Se ($ Comp-> Perm (@a, @b) {stampare "arrays sono permsn"; altrimenti {stampa "No. Gli array sono completamente diversi";} in questo caso i valori dello spazio bianco e del caso sono ancora usati, ma salta è ignorato per, si spera, ovvia ragioni.requirementi: · Perl


Array :: Confronta. Software correlato