Je souhaite utiliser la fonction pack() en Perl pour coder certaines données. Ensuite, je veux comparer ma structure emballée à une autre structure emballée. Je veux que cette comparaison soit sur les valeurs de byte de cette structure empaquetée.Comment comparer les valeurs compressées en Perl?
Selon la documentation, cmp utilise l'environnement local actuel pour déterminer comment comparer les chaînes. Mais je ne veux pas d'intelligence appliquée à la comparaison. Je veux ce qui est le plus proche d'un memcmp(). Évidemment, je ne peux pas utiliser <=>
pour comparer mes objets emballés car ils ne sont pas des nombres.
Quelle est la meilleure façon de comparer les chaînes compressées en Perl?
Sidenote: J'ai lu this article on efficient sorting in Perl qui note que la fonction de tri simple utilise un algorithme de type memcmp pour comparer les structures. Je me demande comment réaliser une telle comparaison sans avoir à utiliser le tri.
'sort' est vraiment un excellent endroit pour commencer. Essayer de construire votre propre système de tri ne fonctionnera probablement pas aussi bien que vous le voudriez, car le tri Perl a été réglé avec précision au fil des années. Le lien de tri efficace que vous avez donné inclut en fait des instructions sur l'utilisation de structures de données compactes pour accélérer le tri, ce qui est assez intelligent, mais le tri prendrait beaucoup de temps avant que je me consacre à maintenir cela. – sarnold
Voulez-vous une comparaison (c'est-à-dire, inférieure, supérieure ou égale à) ou un test d'égalité oui ou non? –
@gbacon: Je veux quelque chose avec lequel je peux commander, donc moins que, plus grand que, égal à. –