Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I'd love to see these features in Module::Version::Report, which is now my problem child ;)
    • Your's? I see that Ruslan U. Zakirov maintains it and he/she has a bestpractical.com email address. Is this some strange alias or something? :)

      • Ruslan works for me. I _believe_ that both he and I are comaint on PAUSE. But it's in my (BPS's) repo and we do a lot of that 'collective code ownership' thing.
        • So, next question then. Why do you walk the symbol table instead of consulting %INC? Is this in case someone diddles %INC? That seems a bit strange, so I'm assuming that you've seen something I've missed.

          • It predates me, but my guess is:

            DB sub Foo::bar { 1}

                                                                                                                                             
            • Now I'm really confused. The snippet you have isn't valid Perl :/ What's the DB mean there? Something related to strange things with the debugger and the DB package? The rest I understand and think it's a non-issue (if you're manually creating a namespace, then the version check is irrelevant as you'll pick that up in code you already have).

              • Sorry. the bits were me copying and pasting sample code from the debugger.

                It's not _manually_ created code I'm concerned about. It's runtime-generated code. Packages that are automatically instantiated by other code. M::V::R isn't just "what versions are loaded" but also "what's loaded", which can often be a very useful bit of debugging information itself.
                • Reminds me of another debugging tool I've thought about:

                  use Package::Recreate 'recreate';

                  print recreate($some_package);

                  That would then walk through the package's symbol table and attempt to create a string that's equivalent to the code of a loaded package. It would likely be very fragile, though, hence using it as a debugging tool.