Skip to content

Commit

Permalink
Refactor; _ret_list and _ret_scalar
Browse files Browse the repository at this point in the history
  • Loading branch information
gisle committed Jan 2, 2009
1 parent d87175f commit 2c06f76
Showing 1 changed file with 22 additions and 19 deletions.
41 changes: 22 additions & 19 deletions lib/Data/Dump/Trace.pm
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,10 @@ sub call {
$func->(@_);
}
elsif (wantarray) {
my @s = $func->(@_);
print " ==> ", CYAN, dumpav(@s), RESET, "\n";
return @s;
return _ret_list($func->(@_));
}
else {
my $s = $func->(@_);
print " ==> ", CYAN, dump($s), RESET, "\n";
return $s;
return _ret_scalar($func->(@_));
}
}

Expand All @@ -90,22 +86,29 @@ sub mcall {
$o->$method(@_);
}
elsif (wantarray) {
my @s = $o->$method(@_);
print " ==> ", CYAN, dumpav(@s), RESET, "\n";
return @s;
return _ret_list($o->$method(@_));
}
else {
my $s = $o->$method(@_);
if (my $name = $autowrap_class{ref($s)}) {
$name .= $name_count{$name} if $name_count{$name}++;
print " ==> ", CYAN, $name, RESET, "\n";
$s = wrap(name => $name, obj => $s);
}
else {
print " ==> ", CYAN, dump($s), RESET, "\n";
}
return $s;
return _ret_scalar($o->$method(@_));
}
}

sub _ret_list {
print " ==> ", CYAN, dumpav(@_), RESET, "\n";
return @_;
}

sub _ret_scalar {
my $s = shift;
if (my $name = $autowrap_class{ref($s)}) {
$name .= $name_count{$name} if $name_count{$name}++;
print " ==> ", CYAN, $name, RESET, "\n";
$s = wrap(name => $name, obj => $s);
}
else {
print " ==> ", CYAN, dump($s), RESET, "\n";
}
return $s;
}

package Data::Dump::Trace::Wrapper;
Expand Down

0 comments on commit 2c06f76

Please sign in to comment.