Thanks. I know I should have looked into CPAN. I was sure to find many so I was hoping for an "I'm using this one and am happy with it" type of response. :-)
Data::Compare looks slightly better (though neither seems to care about loops), so I'll take that one as the basis. As I said I need/want something a little different. I don't need $struct1 == $struct2, but something like $struct1 <= $struct2.
That is "Do all hashes in $struct2 contain all the keys as those in $struct1 and with the same values? Do all arrays in $struct2 have at least as many items and those in $struct1 and do those have the same values? I don't mind if the hashes in $struct2 contain additional keys or the arrays have more item.
I have this implemented (will then send my additions to the Data::Compare's author), but I can't think up a decent name for the function. During the development I used CompareX(), but that doesn't say anything about what it does. Does anyone have a suggestion?