home *** CD-ROM | disk | FTP | other *** search
- # -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*-
- package CPAN::Debug;
- use strict;
- use vars qw($VERSION);
-
- $VERSION = sprintf "%.6f", substr(q$Rev: 2212 $,4)/1000000 + 5.4;
- # module is internal to CPAN.pm
-
- %CPAN::DEBUG = qw[
- CPAN 1
- Index 2
- InfoObj 4
- Author 8
- Distribution 16
- Bundle 32
- Module 64
- CacheMgr 128
- Complete 256
- FTP 512
- Shell 1024
- Eval 2048
- HandleConfig 4096
- Tarzip 8192
- Version 16384
- Queue 32768
- FirstTime 65536
- ];
-
- $CPAN::DEBUG ||= 0;
-
- #-> sub CPAN::Debug::debug ;
- sub debug {
- my($self,$arg) = @_;
-
- my @caller;
- my $i = 0;
- while () {
- my(@c) = (caller($i))[0 .. ($i ? 3 : 2)];
- last unless defined $c[0];
- push @caller, \@c;
- for (0,3) {
- last if $_ > $#c;
- $c[$_] =~ s/.*:://;
- }
- for (1) {
- $c[$_] =~ s|.*/||;
- }
- last if ++$i>=3;
- }
- pop @caller;
- if ($CPAN::DEBUG{$caller[0][0]} & $CPAN::DEBUG) {
- if ($arg and ref $arg) {
- eval { require Data::Dumper };
- if ($@) {
- $CPAN::Frontend->myprint($arg->as_string);
- } else {
- $CPAN::Frontend->myprint(Data::Dumper::Dumper($arg));
- }
- } else {
- my $outer = "";
- local $" = ",";
- if (@caller>1) {
- $outer = ",[@{$caller[1]}]";
- }
- $CPAN::Frontend->myprint("Debug(@{$caller[0]}$outer): $arg\n");
- }
- }
- }
-
- 1;
-
- __END__
-
- =head1 LICENSE
-
- This program is free software; you can redistribute it and/or
- modify it under the same terms as Perl itself.
-
- =cut
-