X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXJSON.pm;h=1091f2f10a07180f75fcff05ed906ff02cb93c4e;hb=cb319a377cdf61f610b57bb1336eba1b5873db2b;hp=1a26f1aa4f3a694a9781aa1ea902dc4afea7edc3;hpb=140683d04c00f7932b7e3ee7f7bde4513915f0c9;p=spider.git diff --git a/perl/DXJSON.pm b/perl/DXJSON.pm index 1a26f1aa..1091f2f1 100644 --- a/perl/DXJSON.pm +++ b/perl/DXJSON.pm @@ -11,6 +11,7 @@ use warnings; use JSON; use Data::Structure::Util qw(unbless); +use Scalar::Util qw(blessed); use DXDebug; use DXUtil; @@ -25,14 +26,13 @@ sub encode { my $json = shift; my $ref = shift; - my $name = ref $ref; - - unbless($ref) if $name && $name ne 'HASH'; + my $name = blessed $ref; + unbless($ref) if $name; my $s; eval {$s = $json->SUPER::encode($ref) }; if ($s && !$@) { - bless $ref, $name if $name && $name ne 'HASH'; + bless $ref, $name if $name; return $s; } else {