Perl需要比较两种数据结构和返回差异

时间:2010-10-25 02:58:33

标签: perl comparison

我有两个混合了哈希和数组的数据结构。我如何比较两个数据结构并返回它们的差异,比如perl的Test :: Harness模块​​,但我不想实际运行单元测试。 ...或者有没有办法在没有实际运行单元测试的情况下调试Test :: Harness?

2 个答案:

答案 0 :(得分:4)

Perl MonksTest::DeepData::CompareData::Match是你的朋友。这些软件包似乎不适合生成详细的差异,但您可能能够通过回调来跟踪精确的差异。

答案 1 :(得分:3)

Test :: Deep :: NoTest(来自Test::Deep)可能就是你要找的东西,在测试脚本(eq_deeply,cmp_deeply等)之外提供Test :: Deep的功能。看看使用deep_diag()看看有什么不同。

Data::Compare - 也给函数返回布尔响应(比如在文件的命令行上使用cmp),但是(从内存中)更难以返回这些差异。

我最近使用过前者,可能是为了得到Data :: Compare没有提供的deep_diag()细节,但我还没有尝试解析响应。