NAME
Devel::Xref - Generates cross reference database for use by Perl programs.
SYNOPSIS
use Devel::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
Devel::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.
%def-
A map of subs to definitions.
%package_sub-
A map of packages to subs defined.
%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.
%module_files-
A map of module names to containing files.
Functions
rebuild()-
Rebuild the Xref database.
forget(@funcs)-
Forget that
@funcswere defined. XXX: this really needs to take packages into account. redefined(@funcs)-
Recompute xref info for each of of
@funcs. callers($func)-
List callers of
$func. callees($func)-
List callees of
$func. defs($func)-
Find locations where
$funcis defined. var_defs($var)-
Find locations where
$varis defined. var_uses($var)-
Find locations where
$varis used. package_subs($pack)-
Find subs in package
$pack. mod_file($mod)-
Find file for module
$mod. file_modules($file)-
List the modules defined in file
$file. apropos($expr)-
Find subs matching
$expr. var_apropos($expr)-
Find variables matching
$expr. mod_apropos($expr)-
Find modules matching
$expr. file_apropos($expr)-
Find modules matching
$expr.
EXPORTS
Nothing by default, but all sub and variable described above can be imported. Devel::Xref also defines the tags :most for the above-listed functions, and :all for those and the variables as well.
BUGS
See B::Xref. Also, we currently ignore module names when looking up a sub by name. Finally, there is some evil in the way we guess file and line numbers, both of which should be done more cleanly and effectively.
AUTHOR
B::Xref by Malcolm Beattie, m(angl|odifi)ed by Sean O'Rourke (seano@cpan.org).
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 76:
'=item' outside of any '=over'