Devel::TraceCalls allows subroutine calls to be tracked on a
per-subroutine, per-package, per-class, or per object instance
basis.
The Devel::Modlist perl module provides a means by which to get a
quick run-down on which libraries and modules are being utilized
by a given perl script.
Just as compiler systems like gcc provide dependency information
via switches such as -M, Devel::Modlist is intended to assist script
authors in preparing dependency information for potential users of
their scripts.
Devel::TraceUse - Show the modules your program loads, recursively.
An apparently simple program may load a lot of modules. That's useful, but
sometimes you may wonder exactly which part of your program loads which module.
Devel::TraceUse can analyze a program to see which part used which module.
Devel::Dumpvar is a pure object-orientated reimplementation of the dumpvar.pl
script. This makes it much more versatile version to use for dumping information
to debug log files or other uses where is no need to reassemble the data.
The Perl 5 module Devel::Gladiator iterate's Perl's internal memory
structures and can be used to enumerate all the currently live SVs.
This can be used to hunt leaks and to profile memory usage.
Devel::BeginLift 'lifts' arbitrary sub calls to running at compile
time - sort of a souped up version of "use constant". It does this via
some slightly insane perlguts magic.
Devel::CheckOS provides a more friendly interface to $^O, and also lets you
check for various OS "families" such as "Unix", which includes things like
Linux, Solaris, AIX etc.
Devel::OverloadInfo returns information about overloaded operators for a given
class (or object), including where in the inheritance hierarchy the overloads
are declared and where the code implementing it is.
This little package serves to access the symbol table of perl.
Devel::Symdump->rnew(@packages)
returns a symbol table object for all subtrees below @packages.
Nested Modules are analyzed recursively. If no package is given as
argument, it defaults to main. That means to get the whole symbol
table, just do a rnew without arguments.
Devel::Symdump->new(@packages)
does not go into recursion and only analyzes the packages that are
given as arguments.
Provides a strace/truss-like runtime call monitor for Perl applications.
Note that, while strace/truss only dumps system calls, Devel::STrace
dumps all calls to Perl subs on the application's stack. Also note that
Devel::STrace cannot trace non-Perl calls (e.g., calls inside XS/C
modules), so an additional external strace/truss monitor may be needed
to fully diagnose a misbehaving Perl script.