Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Was a module use'd or require'd?

by sfink (Deacon)
on Aug 14, 2007 at 04:41 UTC ( #632393=note: print w/ replies, xml ) Need Help??

in reply to Was a module use'd or require'd?

How about Devel::Snapshot?

I read the linked blog, and I'm still not clear on why you need to distinguish the two. At least as a first cut, wouldn't it be adequate to just print out all of the effects of the use/require? As in, symbol table entries, variable assignments, etc.? You can figure out what package a particular subroutine was defined in via B::Deparse's coderef2text, so you can still group things by package and then output an alias statement (sub A::f {...}; *B::g = *A::f;) rather than a redefinition (sub A::F {...}; sub B::g { ... }) or a chained assignment: *A::f = *B::g = sub { ... }.

I have to admit that I haven't thought very hard about it, though.

I guess I can see the value in making the output code look as much as possible like the input code, although for things where this would be useful, I'm not sure if that's relevant. (If you're debugging something that autogenerates classes, then there's really no input that's useful to imitate.)

Comment on Re: Was a module use'd or require'd?

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2015-10-08 22:29 GMT
Find Nodes?
    Voting Booth?

    Does Humor Belong in Programming?

    Results (229 votes), past polls