http://www.perlmonks.org?node_id=632448


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

I had seen your post about Devel::Recreate on use.perl.org and I couldn't make heads nor tails of it, due to the bad (IMO) name, so I simply stopped reading. I thought you were just having fun with developing? Huh?

Now I see I have to read it as "re-create". Ah. (Perhaps name it "Devel::ReCreate", then, that'll be a bit clearer.)

Well, I'd explore two routes:

  1. Was the action (use or require) called using compile time or runtime? In the former, it must have been used, otherwise, it's likely to be required. Well, it's just a heuristic, good for 95% of all cases, because both use of BEGIN blocks and of eval can make this detection fail.
  2. Intercept the calls to import, which is just a plain (class) method, but called automatically. You can create one if none exists, or you could use Hook::LexWrap if it does.

I'm not saying this will solve all of your problems, but I thinks they are good options to explore.