diff options
Diffstat (limited to 'Perl/Zinc')
-rw-r--r-- | Perl/Zinc/TraceErrors.pm | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Perl/Zinc/TraceErrors.pm b/Perl/Zinc/TraceErrors.pm index 43c4e3d..0d1e64f 100644 --- a/Perl/Zinc/TraceErrors.pm +++ b/Perl/Zinc/TraceErrors.pm @@ -62,8 +62,12 @@ sub Tk::Zinc::WidgetMethod { $filename="" unless defined $filename; $line="" unless defined $line; # invoke function possibly overloaded in other modules - my $res; - eval {$res = &$WidgetMethodfunction(@_) if $WidgetMethodfunction;}; + my ($res, @res); + if (wantarray()) { + eval {@res = &$WidgetMethodfunction(@_) if $WidgetMethodfunction;}; + } else { + eval {$res = &$WidgetMethodfunction(@_) if $WidgetMethodfunction;}; + } if ($@) { print $bold."error:".$_bold." $filename line $line $name"; &printList (@args); @@ -71,7 +75,11 @@ sub Tk::Zinc::WidgetMethod { $msg =~ s/at .*//g; print " ".$bold."returns".$_bold." $msg\n"; } - return $res; + if (wantarray()) { + return @res; + } else { + return $res; + } } |