Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Print all derefs and method calls in a directory (Friday golf)

by jepri (Parson)
on Jan 09, 2009 at 05:08 UTC ( #735080=note: print w/ replies, xml ) Need Help??


in reply to Re: Print all derefs and method calls in a directory (Friday golf)
in thread Print all derefs and method calls in a directory (Friday golf)

Unless I'm missing something, the examples you have are fairly simply structured - I'm having to deal with calls like:

$people->{login}->{chair}->{height}
and each level is tampered with by a different module.

So in your examples I'd be seeing: for (@{$people->{login}->{desk}->{paperclips}){}


Comment on Re^2: Print all derefs and method calls in a directory (Friday golf)
Select or Download Code
Re^3: Print all derefs and method calls in a directory (Friday golf)
by ikegami (Pope) on Jan 09, 2009 at 05:46 UTC

    There are four derefences in

    @{$people->{login}->{desk}->{paperclips}}

    but only three arrows.

    The rest of your post doesn't relate to what I said, so I have no comment on it save that I rarely have paths that long.

    for my $employee (@$employees) { for my $desk (@{ $employee->{desks} }) { $paperclips += $desk->{paperclips}; } }

    Four dereferences, but only two arrows. And the output of your script doesn't illustrate the structure at all. Data::Dumper will do that to some extent.

      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.

        Both you and I might have written the code differently,

        Again, I didn't comment on that. My only beef was with your statement that everyone uses "->".

        because I didn't have full environment to run it in(so no Data::Dumper)

        I suggest you fix your broken install.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://735080]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (4)
As of 2015-07-03 03:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (48 votes), past polls