3 Stimmen

Perl muss zwei Datenstrukturen vergleichen und die Unterschiede zurückgeben

Ich habe zwei Datenstrukturen mit einer Mischung aus Hashes und Arrays. Wie kann ich die beiden Datenstrukturen vergleichen und ihre Unterschiede zurückgeben, etwas wie Perls Test::Harness-Modul, aber ich will nicht tatsächlich einen Unit-Test ausführen. ...oder gibt es eine Möglichkeit, Test::Harness zu tunen, ohne tatsächlich einen Unit-Test auszuführen?

4voto

mu is too short Punkte 411765

Perl-Mönche sagt, dass Test::Deep , Daten::Vergleichen y Daten::Match sind deine Freunde. Diese Pakete scheinen nicht auf die Erstellung detaillierter Diffs ausgerichtet zu sein, aber vielleicht können Sie einen Callback einbauen, um die genauen Unterschiede zu verfolgen.

0 Stimmen

Weder Test::Deep noch Data::Compare sind darauf ausgerichtet, detaillierte Diffs zu erzeugen - haben Sie in Ihrem zweiten Satz ein "nicht" vergessen?

3voto

plusplus Punkte 1962

Test::Deep::NoTest (ab Test::Deep ) könnte das sein, wonach Sie suchen, um die Funktionen von Test::Deep außerhalb eines Testskripts zu nutzen (eq_deeply, cmp_deeply usw.). Schauen Sie sich die Verwendung von deep_diag() an, um zu sehen, wo die Unterschiede liegen.

Daten::Vergleichen - bietet auch Funktionen, die boolesche Antworten zurückgeben (ähnlich wie die Verwendung von cmp auf der Befehlszeile für Dateien), aber (aus dem Gedächtnis) ist es schwieriger, diese Unterschiede zu benennen.

Ersteres habe ich erst kürzlich verwendet, wahrscheinlich um die Details von deep_diag() zu erhalten, die Data::Compare nicht lieferte, aber ich habe nicht versucht, die Antwort zu analysieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X