I had to do this statically, because I didn't have full environment to run it in(so no Data::Dumper). I was trying to find the structure of a couple of large state hashes that get passed around, using only what I saw in the code. I'm sorry I wasn't clear about that.
Both you and I might have written the code differently, but I had to tackle what was in front of me. This code has a lot of nested hash derefs, and when they are all listed by the command line, they form a convenient hierachy which shows the keys and sub-keys. A possible advantage over data dumper (in this case) is that it shows which keys are accessed by the program, rather than all the ones that exist.