Perl нужно сравнить две структуры данных и вернуть разницу - PullRequest
3 голосов
/ 25 октября 2010

У меня есть две структуры данных со смесью хешей и массивов. Как я могу сравнить две структуры данных и вернуть их различия, что-то вроде модуля Perl Test :: Harness, но я не хочу на самом деле запускать модульный тест. ... или есть способ настроить Test :: Harness, не выполняя юнит-тест?

Ответы [ 2 ]

4 голосов
/ 25 октября 2010

Perl Monks говорит, что Test :: Deep , Data :: Compare и Data :: Match ваши друзья.Эти пакеты, похоже, не предназначены для создания подробных различий, но вы можете взломать обратный вызов, чтобы отследить точные различия.

3 голосов
/ 25 октября 2010

Test :: Deep :: NoTest (из Test :: Deep ) может быть тем, что вы ищете, предоставляя функции Test :: Deep вне тестового скрипта (eq_deeply, cmp_deeply и т. Д.) , Посмотрите на использование deep_diag (), чтобы увидеть, в чем различия.

Data :: Compare - также предоставляет функции, возвращающие логические ответы (скорее как использование cmp в командной строке для файлов), но (из памяти) сложнее вернуть, каковы эти различия.

Я использовал последнее совсем недавно, вероятно, чтобы получить подробные данные о deep_diag (), которые Data :: Compare не предоставил, но я не пытался проанализировать ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...