Quiero usar la función pack() en Perl para codificar algunos datos. Entonces quiero comparar mi estructura empaquetada a otra estructura empaquetada. Quiero que esto se compare en los valores de bytes de esta estructura empaquetada.¿Cómo comparo los valores empaquetados en Perl?
De acuerdo con la documentación, cmp usa la configuración regional actual para determinar cómo comparar cadenas. Pero no quiero que se aplique ninguna inteligencia a la comparación. Quiero lo que esté más cerca de un memcmp(). Obviamente no puedo usar <=>
para comparar mis objetos empaquetados ya que no son números.
¿Cuál es la mejor manera de comparar cadenas empaquetadas en Perl?
Nota: He estado leyendo this article on efficient sorting in Perl que señala que la función de ordenación simple utiliza un algoritmo similar a memcmp para comparar estructuras. Me pregunto cómo lograr tal comparación sin tener que usar sort.
'sort' es realmente un excelente lugar para empezar. Tratar de construir tu propio reemplazo de clasificación probablemente no funcione tan bien como te gustaría, ya que el género Perl ha sido afinado durante años. El enlace de clasificación eficiente que le diste en realidad incluye instrucciones sobre cómo usar estructuras de datos empaquetadas para acelerar el género, lo cual es bastante ingenioso, pero la clasificación debería tomar mucho tiempo antes de que me dedique a mantener eso. – sarnold
¿Desea una comparación (es decir, menor que, mayor que o igual a) o una prueba de igualdad de sí o no? –
@gbacon: Quiero algo con lo que pueda ordenar, por lo tanto, menos que, mayor que, igual a. –