Provided by: sepia_0.992-6_all bug

NAME

       Sepia::Xref - Generates cross reference database for use by Perl programs.

SYNOPSIS

           use Sepia::Xref qw(rebuild defs callers);

           rebuild;
           for (defs 'foo') {
               printf "%s:%d: sub %s\::foo() defined\n", @{$_}[0..2];
           }

           for (callers 'foo') {
               printf "%s:%d: sub foo() called by %s\::%s().\n", @{$_}[0..3];
           }

DESCRIPTION

       "Sepia::Xref" is intended as a programmatic interface to the information supplied by
       B::Xref.  It is intended to be a component for interactive Perl development, with other
       packages providing a friendly interface to the raw information it extracts.  "B::Xref"
       could be seen as an example of this sort of user-level tool, if it weren't for the fact
       that this module was created later, and stole most of its code.

   Variables
       %call
           A map of subs to call locations and callers

       %callby
           A map of subs to subs called.

       %var_use
           A map of global/package variables to uses.

       %var_def
           A map of global/package variables to definitions (usually empty, since it only picks
           up local (...) declarations.

   Functions
       "guess_module_file($pack, $ofile)"
           XXX: it turns out that rooting around trying to figure out the file ourselves is more
           reliable than what we grab from the op.  Are we doing this wrong?

       "rebuild()"
           Rebuild the Xref database.

       "forget($func [, $mod])"
           Forget that $func was defined.

       "redefined($func [, $pack])"
           Recompute xref info for $func, or "$pack::$func" if $pack given.

       "callers($func)"
           List callers of $func.

       "callees($func)"
           List callees of $func.

       "var_defs($var)"
           Find locations where $var is defined.

       "var_uses($var)"
           Find locations where $var is used.

       "var_assigns($var)"
           Find locations where $var is assigned to.

       "file_modules($file)"
           List the modules defined in file $file.

       "var_apropos($expr)"
           Find variables matching $expr.

EXPORTS

       Nothing by default, but all sub and variable described above can be imported.
       "Sepia::Xref" also defines the tags ":most" for the above-listed functions, and ":all" for
       those and the variables as well.

BUGS

       See B::Xref.
       module names are ignored when looking up a sub.
       file and line number guessing is evil
           Both should be done more cleanly and effectively.  This is a hack because I don't
           quite understand what perl saves.  We should be able to do as well as its warning
           messages.

       Some packages are not xref'd.
           Some "internal" packages are deliberately not cross-referenced, either because they
           are hairy and cause us problems, or because they are so commonly included as to be
           uninteresting.  The current list includes all pragmatic modules, plus: B, O,
           AutoLoader, DynaLoader, XSLoader, Config, DB, VMS, FileHandle, Exporter, Carp,
           PerlIO::Layer.

       Tree-view is not fully functional
           Ideally, clicking the function names in tree view would take you to that function.
           This doesn't work.  Also, more keys (like "q" to quit) should be implemented.

SEE ALSO

       "B::Xref", of which "Sepia::Xref" is a bastard child.

AUTHOR

       B::Xref by Malcolm Beattie, m(angl|odifi)ed by Sean O'Rourke (seano@cpan.org).