Array :: Comparer

Array :: Comparer est une extension Perl pour la comparaison de tableaux.
Télécharger maintenant

Array :: Comparer Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • Perl Artistic License
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Dave Cross
  • Site Internet de l'éditeur:
  • http://search.cpan.org/~davecross/Array-Compare-1.14/lib/Array/Compare.pm

Array :: Comparer Mots clés


Array :: Comparer La description

Array :: Comparer est une extension Perl pour la comparaison de tableaux. Synopsis Utilisez le tableau :: comparer; My $ Comp1 = Array :: Comparer-> Nouveau; $ comp-> sep ('|'); $ comp-> skip ({3 => 1, 4 => 1}); $ comp-> blancsespace (0); $ comp-> cas (1); My $ Comp2 = Array :: Comparer-> Nouveau (Sep => '|', WhitSpace => 0, Cas => 1, Skip => {3 => 1, 4 => 1}); mon @ arr1 = 0 .. 10; mon @ arr2 = 0 .. 10; $ comp 1-> comparer (@ arr1, @ arr2); $ comp2-> comparer (@ arr1, @ arr2); si vous avez deux tableaux et que vous voulez savoir s'ils sont identiques ou différents, alors tableau :: Comparer vous sera utile. Toutes les comparaisons sont effectuées via un comparateur objet. Dans l'utilisation la plus simple, vous pouvez créer et utiliser un objet comparateur comme celui-ci: mon @ arr1 = 0 .. 10; mon @ arr2 = 0 .. 10; My $ Comp = Comp = Array :: Comparer-> Nouveau; IF ($ Compt> Comparer (@ Arr1, @ Arr2)) {Imprimer "Les tableaux sont les samen"; } else {imprimer "Les tableaux sont différents"; } Notez que vous passez des références aux deux tableaux à la méthode de comparaison. Le comparateur compare les deux tableaux à l'aide d'une jointure pour transformer les deux tableaux dans des cordes et en comparant les cordes utilisant EQ. Dans les chaînes jointes, les éléments des matrices d'origine sont séparés avec le caractère ^ g. Cela peut causer des problèmes si vos données de matrice contiennent des caractères ^ g car il est possible que deux matrices différentes puissent être converties dans la même chaîne. Pour éviter cela, il est possible de remplacer le caractère du séparateur par défaut, soit en passant et en alternative au nouveau. Fonction My $ Comp = Comp = Array :: Comparaison -> Nouveau (Sep => '|'); ou en modifiant le sépérateur pour un objet comparateur existant $ Comp-> sep ('|'); en général, vous devez choisir un caractère de séparation Cela n'apparaîtra pas dans vos données.Vous pouvez également contrôler si les espaces blancheurs dans les éléments des tableaux doivent être considérés comme significatifs lors de la comparaison. La valeur par défaut est que tout blancheur est significatif. L'alternative est que tous les espaces blancs consécutifs soient convertis en un seul espace pour les préposes de la comparaison. Encore une fois, cela peut être activé lors de la création d'un objet comparateur: My $ Comp = comp = tableau :: Comparaison-> Nouveau (WhitSpace => 0); ou en modifiant un objet existant: $ Comp> Whitespace (0); vous pouvez aussi Contrôlez si le cas des données est important dans la comparaison. La valeur par défaut est que le cas des données est pris en compte. Cela peut être modifié de la manière standard lors de la création d'un nouvel objet comparateur: My $ Comp = comp = tableau :: comparer-> nouveau (cas => 0); ou en modifiant un objet existant: $ Comp> Case (0); Ajout à la simple comparaison décrite ci-dessus (qui retourne true si les tableaux sont identiques et faux si elles sont différentes) Il existe également une comparaison complète qui renvoie une liste contenant les index des éléments qui diffèrent entre les deux tableaux. Si les tableaux sont identiques, il renvoie une liste vide. Dans contexte scalaire, la comparaison complète renvoie la longueur de cette liste (c'est-à-dire le nombre d'éléments qui diffèrent). Vous pouvez accéder à la comparaison complète de deux manières. Premièrement, il y a un attribut defull. Si cela est vrai, une comparaison complète si elle est effectuée chaque fois que la méthode de comparaison est appelée. My $ Comp = Comp = Array :: Comparer-> Nouveau (Deffull => 1); $ comp-> comparer (@ arr1, @ arr2); # Comparaison complète $ comp-> deffull (0); $ comp-> comparer (@ arr1, @ arr2); # Comparaison simple $ comp-> deffull (1); $ comp-> comparer (@ arr1, @ arr2); # Comparaison complète à nouveauseCondy, vous pouvez accéder à la méthode de comparaison complète directement $ Comp-> Full_Compare (@ Arr1, @ Arr2); pour la symétrie, il existe également une méthode directe à utiliser pour appeler la comparaison simple. $ comp-> simple_compare (@ arr1, @ arr2); la complication finale est la capacité de sauter des éléments dans la comparaison. Si vous savez que deux tableaux seront toujours diffèrent dans un élément particulier, mais que vous souhaitez comparer les tableaux ignorant cet élément, vous pouvez le faire avec un tableau :: comparer sans prendre des tranches de réseau. Pour ce faire, un objet comparateur a un attribut facultatif appelé Skip qui est une référence à un hachage. Les clés de ce hachage sont les index des éléments de tableau et les valeurs doivent être une valeur réelle pour les éléments qui doivent être ignorés.Pro exemple, si vous souhaitez comparer deux tableaux, ignorez les valeurs des éléments deux et quatre, vous pouvez faire quelque chose comme ceci: mon% skip = (2 => 1, 4 => 1); mon @a = (0, 1, 2, 3, 4, 5); mon @b = (0, 1, x, 3, x, 5); My $ Comp = Tary :: Comparer-> Nouveau (Skip =>% Skip); $ Comp-> comparer (@a, @b); cela devrait renvoyer true, car nous ignorons explicitement les colonnes qui diffèrent.Of de cours, ayant créé un objet comparateur sans hachage de saut, il est possible d'en ajouter une plus tard: $ plus tard: $ comp-> skip ({1 => 1, 2 => 1}); ou: mon% Skip = (1 => 1, 2 => 2); $ Comp-> Skip (% Skip); pour réinitialiser le comparateur de sorte que cela ne saute plus des éléments, définissez le hachage de saut à un hachage vide. $ Comp-> Skip ({}); vous pouvez également vérifier si un tableau est une permutation d'une autre, c'est-à-dire qu'ils contiennent les mêmes éléments mais dans un ordre différent. Si ($ Comp-> perm (@a, @b) {impression "Les tableaux sont Permsn"; elez {imprimé "Nope. Les tableaux sont complètement différents";} Dans ce cas, les valeurs de l'espace et de l'affaire sont toujours utilisées, mais sautent est ignoré pour, espérons-le, des raisons évidentes. Rondifications: · Perl


Array :: Comparer Logiciels associés

Tao :: DBI :: St

TAO :: DBI :: ST est un module Perl pour les déclarations DBI avec support portable pour les espaces réservés nommés. ...

162

Télécharger