NAME Devel::XRay - See What a Perl Module Is Doing VERSION Version 0.91 SYNOPSIS use Devel::XRay along with "ignore", "only", or "all", use Devel::XRay; use Devel::XRay 'all'; # same as saying 'use trace;' use Devel::XRay 'none'; # filter the source but don't inject anything use Devel::XRay ignore => qw(man_behind_curtain private); use Devel::XRay only => qw(sex drugs rock_and_roll); DESCRIPTION Devel::XRay is a handy source filter using Filter::Simple when used at the top of perl code, will inject print statements to standard error to show you what a module is doing. This module is useful if... * You're a visual learner and want to "see" program execution * You're tracking an anomaly that leads you into unfamiliar code * You want to quickly see how a module _runs_ * You've inherited code and need to grok it * You start a new job and want to get a fast track on how things work EXAMPLES #!/usr/bin/perl use strict; use warnings; use Devel::XRay; use Example::Object; init(); my $example = Example::Object->new(); my $name = $example->name(); my $result = $example->calc(); cleanup(); sub init {} sub cleanup {} # In a another file, say Example/Object.pm package Example::Object; use Devel::XRay; sub new { bless {}, shift } sub name {} sub calc {} Produces the following output # Hires seconds # package::sub [1092265261.834574] main::init [1092265261.836732] Example::Object::new [1092265261.837563] Example::Object::name [1092265261.838245] Example::Object::calc [1092265261.839443] main::cleanup ACKNOWLEDGEMENTS This module was inspired by Damian Conway's Sufficently Advanced Technology presentation at YAPC::NA 2004. I had initially attempted to use Hook::LexWrap, but using Filter::Simple was just a lot cleaner and seem practical for something you on turn on for debugging code. The first iteration was only 2 lines of actual code. package Devel::XRay; use strict; use warnings; use Filter::Simple; my $code = 'print STDERR (caller(0))[3] . "\n";'; FILTER { return unless $_; $_ =~ s/(sub.+?{)/$1 $code/sg; } Also, I'd like to thank fellow SouthFlorida.pm Rocco Caputo for working out the import logic over Sub Etha Edit at OSCON. Rock on Rocco! AUTHOR Jeff Bisbee, "" BUGS Please report any bugs or feature requests to "bug-devel-xray at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT You can find documentation for this module with the perldoc command. perldoc Devel::XRay You can also look for information at: * AnnoCPAN: Annotated CPAN documentation * CPAN Ratings * RT: CPAN's request tracker * Search CPAN COPYRIGHT & LICENSE Copyright 2006 Jeff Bisbee, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO JavaScript::XRay, Filter::Simple, Time::HiRes, Hook::LexWrap, Devel::Trace