Hello monks,

I am faced with the task of having to be introduced to a series of scripts which have no documentation. After spending the last few days reading through them and tracing back and forth between required scripts, their structure is beginning to make some sense.

What I am after is some advice (nodes, links, anything) in terms of inspecting the structure of the existing scripts. I would like to write a script capable of peering into scripts loaded via require or use, distinguishing the difference between itself and the namespaces of the included scripts and recording the subs (and the arguments required for those subs if possible). Maybe someone can point me in the right direction.

I will be refering to the %INC collection as I trace through these scripts (since it is difficult to find the right script containing the correct subroutine...the collection of scripts is enormous the result of over a years work by a team of three). However I am thinking about keeping track of references to subroutines as they are executed, is there a variable which stores this sort of information during execution time such as defined subroutines and currently executing functions (maybe a stack of namespaces)?

I don't expect to be able to gain a complete picture of this collection, however I do want to be able to record some indication which can aid in the process of reading through them.

In reply to Inspection/Introspection by ceedee

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.