Upgrade to CPAN-1.80_57
[p5sagit/p5-mst-13.2.git] / lib / CPAN / Debug.pm
1 package CPAN::Debug;
2 use strict;
3 use vars qw($VERSION);
4
5 $VERSION = sprintf "%.2f", substr(q$Rev: 299 $,4)/100;
6 # module is internal to CPAN.pm
7
8 %CPAN::DEBUG = qw[
9                   CPAN              1
10                   Index             2
11                   InfoObj           4
12                   Author            8
13                   Distribution     16
14                   Bundle           32
15                   Module           64
16                   CacheMgr        128
17                   Complete        256
18                   FTP             512
19                   Shell          1024
20                   Eval           2048
21                   HandleConfig   4096
22                   Tarzip         8192
23                   Version       16384
24                   Queue         32768
25 ];
26
27 $CPAN::DEBUG ||= 0;
28
29 #-> sub CPAN::Debug::debug ;
30 sub debug {
31     my($self,$arg) = @_;
32     my($caller,$func,$line,@rest) = caller(1); # caller(0) eg
33                                                # Complete, caller(1)
34                                                # eg readline
35     ($caller) = caller(0);
36     $caller =~ s/.*:://;
37     $arg = "" unless defined $arg;
38     pop @rest while @rest > 5;
39     my $rest = join ",", map { defined $_ ? $_ : "UNDEF" } @rest;
40     if ($CPAN::DEBUG{$caller} & $CPAN::DEBUG){
41         if ($arg and ref $arg) {
42             eval { require Data::Dumper };
43             if ($@) {
44                 $CPAN::Frontend->myprint($arg->as_string);
45             } else {
46                 $CPAN::Frontend->myprint(Data::Dumper::Dumper($arg));
47             }
48         } else {
49             $CPAN::Frontend->myprint("Debug($caller:$func,$line,[$rest]): $arg\n");
50         }
51     }
52 }
53
54 1;