]> git.donarmstrong.com Git - infobot.git/blob - src/Modules/DumpVars2.pl
* Add vim formatting comments ( # vim:ts=4:sw=4:expandtab:tw=80 )
[infobot.git] / src / Modules / DumpVars2.pl
1 #
2 #  DumpVars2.pl: Perl variables dumper ][.
3 #    Maintained: dms
4 #       Version: v0.1 (20020329)
5 #       Created: 20020329
6 #
7
8 # use strict;   # TODO
9
10 use Devel::Symdump;
11
12 sub symdumplog {
13     my ($line) = @_;
14
15     if (fileno SYMDUMP) {
16         print SYMDUMP $line."\n";
17     } else {
18         &status("SD: ".$line);
19     }
20 }
21
22 sub symdumpAll {
23     my $o = Devel::Symdump->rnew();
24
25     # scalars.
26     foreach ($o->scalars) {
27 #       &symdumpRecur($_);
28         symdumplog("  scalar($_)");
29     }
30 }
31
32 sub symdumpRecur {
33     my $x = shift;
34
35     if (ref $x eq 'HASH') {
36         foreach (keys %$x) {
37             &symdumpRecur($_);
38         }
39     } else {
40         symdumplog("unknown: $x");
41     }
42 }
43
44 sub symdumpAllFile {
45     &DEBUG('before open');
46     if (&IsParam('symdumpLogFile')) {
47         my $file = $param{'symdumpLogFile'};
48         &status("opening fh to symdump ($file)");
49         if (!open(SYMDUMP,">$file")) {
50             &ERROR('cannot open dumpvars.');
51             return;
52         }
53     }
54     &DEBUG('after open');
55
56     symdumpAll();
57
58     if (fileno SYMDUMP) {
59         &status('closing fh to symdump');
60         close SYMDUMP;
61     }
62
63     &status("SD: count == $countlines");
64 }
65
66 1;
67
68 # vim:ts=4:sw=4:expandtab:tw=80