380MB, really, is not "large" for most computers these days, which could easily handle both data structures side-by-side in memory without serious swapping. Therefore you could simply suck the two files into memory and use something like
Data::Compare. If you are looking for specific comparisons, XSLT might be useful to "drill down" to exactly what you are looking for.