X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy.pm;fp=perl%2FThingy.pm;h=ed33fde027491b84b041187d6e464aedcfc8771c;hb=87b2f58b1b0df6c0cb5c5f0070db554ec2d2a961;hp=7bbf3edb1568673e265769b36926ea0068dea786;hpb=b045cd59e152bf125fb32d3c28cc49cf659b8a4d;p=spider.git diff --git a/perl/Thingy.pm b/perl/Thingy.pm index 7bbf3edb..ed33fde0 100644 --- a/perl/Thingy.pm +++ b/perl/Thingy.pm @@ -65,15 +65,13 @@ sub send } # generate the line which may (or not) be cached - my @out; - if (my $ref = $thing->{class}) { - push @out, ref $ref ? @$ref : $ref; - } else { + my $ref; + unless ($ref = $thing->{class}) { no strict 'refs'; my $sub = "gen_$class"; - push @out, $thing->$sub($dxchan) if $thing->can($sub); + $ref = $thing->$sub($dxchan) if $thing->can($sub); } - $dxchan->send(@out) if @out; + $dxchan->send(ref $ref ? @$ref : $ref) if $ref; } # broadcast to all except @_