Note: Using the first (and only) element of values avoids the problem with not knowing the name of the key.
...but that only applies to the given sample data because the intermediate-level hash only contains a single key/value pair. If there are multiple keys/values in those hashes, you're screwed because values
will return the values in a random order. (But the order is stable within a single run of the program, so long as the hash isn't modified, so at least it shouldn't throw sort
into an infinite loop. You'll just potentially get results sorted on the wrong sub-hash.)