jepri has asked for the wisdom of the Perl Monks concerning the following question:

I was trying to figure out what hashes were in some code. It was a new code base that I needed to become familiar with (no docs, naturally).

This command line does a pretty good job of making a hierarchical listing from the code. What would you do better?

rgrep -e'->' * | perl -ne '/(\S{3,80}->\S{5,80})/;print $1,"\n"' | pe +rl -pe's/^\(//' | perl -pe 's/^\+\+|^\-\-//' | sort | uniq | less

It only picks up -> derefs but everyone here (ed:at the office) seems to code that way, so it's a win for me.

ed2: I didn't give an example of the output, which ends up looking something like this:

... $people->{login}->{chair}->{color}=something $people->{login}->{chair}->{height}->(blah) $people->{login}->{chair}->{wheels} =~ etc $people->{login}->{desk}->{paperclips} $people->{login}->{desk}->{stapler} ...