use constant FILE_TARGET => 0;
use constant STDERR_TARGET => 1;
+use Data::Dumper;
use POSIX qw(strftime getppid);
use Time::HiRes qw(gettimeofday tv_interval);
use YAML;
use strict;
-my ($data_dumper_available, $text_diff_available);
+my ($text_diff_available);
-our $global_level;
-our $watch_form;
+our $global_level = NONE();
+our $watch_form = 0;
our $file_name;
-BEGIN {
- eval("use Data::Dumper");
- $data_dumper_available = $@ ? 0 : 1;
-
- $global_level = NONE;
- $watch_form = 0;
-}
-
sub new {
my $type = shift;
my $self = {};
sub dump {
my ($self, $level, $name, $variable, %options) = @_;
- if ($data_dumper_available) {
- my $password;
- if ($variable && ('Form' eq ref $variable) && defined $variable->{password}) {
- $password = $variable->{password};
- $variable->{password} = 'X' x 8;
- }
-
- my $dumper = Data::Dumper->new([$variable]);
- $dumper->Sortkeys(1);
- $dumper->Indent(2);
- $dumper->$_($options{$_}) for keys %options;
- my $output = $dumper->Dump();
- $self->message($level, "dumping ${name}:\n" . $output);
-
- $variable->{password} = $password if (defined $password);
-
- # Data::Dumper does not reset the iterator belonging to this hash
- # if 'Sortkeys' is true. Therefore clear the iterator manually.
- # See "perldoc -f each".
- if ($variable && (('HASH' eq ref $variable) || ('Form' eq ref $variable))) {
- keys %{ $variable };
- }
+ my $password;
+ if ($variable && ('Form' eq ref $variable) && defined $variable->{password}) {
+ $password = $variable->{password};
+ $variable->{password} = 'X' x 8;
+ }
- return $output;
+ my $dumper = Data::Dumper->new([$variable]);
+ $dumper->Sortkeys(1);
+ $dumper->Indent(2);
+ $dumper->$_($options{$_}) for keys %options;
+ my $output = $dumper->Dump();
+ $self->message($level, "dumping ${name}:\n" . $output);
- } else {
- $self->message($level,
- "dumping ${name}: Data::Dumper not available; "
- . "variable cannot be dumped");
+ $variable->{password} = $password if (defined $password);
- return undef;
+ # Data::Dumper does not reset the iterator belonging to this hash
+ # if 'Sortkeys' is true. Therefore clear the iterator manually.
+ # See "perldoc -f each".
+ if ($variable && (('HASH' eq ref $variable) || ('Form' eq ref $variable))) {
+ keys %{ $variable };
}
+
+ return $output;
}
sub dump_yaml {