Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Monitor file require/use

by bikeNomad (Priest)
on Jul 26, 2001 at 19:54 UTC ( [id://100026]=sourcecode: print w/replies, xml ) Need Help??
Category: Miscellaneous
Author/Contact Info Ned Konz, bikeNomad, ned@bike-nomad.com
Description: This little script will monitor the behavior of require/use in your script. It will run another Perl program and print out whatever files it's loading to STDERR.

Just run it on another program like this:

perl watchRequire.pl myProgram.pl arg1 arg2 2>required
# Run another Perl program and print list of loaded files to STDERR
#!/usr/bin/perl -w
my $db = <<'EOF';
sub DB::postponed {
  my $glob = shift;
  $glob =~ s/.*::_<//;
  print STDERR "$glob\n";
}
sub DB::DB { }
EOF
($ENV{PERL5DB} = $db) =~ tr/\n/ /;
system($^X, '-d', @ARGV);
Replies are listed 'Best First'.
Re: Monitor file require/use
by khippy (Scribe) on Jul 27, 2001 at 17:15 UTC
    nice script, seems useful (untested so far).

    For my current problem, I could use a modifikation, that has the same function, but watches a cgi-script.
    As this is done by request of an external browser and executed by the local apache server,
    do you think, that your script would serve as a wrapper, and print out loaded files
    *and* variables and values being exchanged between them?

    That all together would be *very* helpful for both developing and debugging purposes!
    --
    there are no silly questions killerhippy
      What do you mean "print out loaded files *and* variables and values being exchanged between them"? What variables? How do your required or used files exchange values with variables?

      This script uses the debugger interface. If you want to monitor a variable, you can tie it (see perltie and Tie::Scalar or Tie::Array or Tie::Hash). I'm not sure what problem you're trying to solve.

      If you just want to watch a particular CGI, just use a remote debugger like Devel::ptkdb or ActiveState's debugger.

        What I am dreaming of ;-) is an omnipotent debuggertool.
        As I only know perl -d so far, I can't imagine a convenient
        way of debugging a cgi-script with multifunctions in depth.
        So I would appreciate a tool telling me that the
        script.pl is currently calling module.pm passing
        variable with value to it
        .
        The problem is, that the script.pl is invoked by Apache by browserrequest, so how can you get into that???
        --
        there are no silly questions
        killerhippy

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: sourcecode [id://100026]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-04-16 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found