Data::Serializer::Data::Dumper - Creates bridge between Data::Serializer and Data::Dumper


Data-Serializer documentation Contained in the Data-Serializer distribution.

Index


Code Index:

NAME

Top

Data::Serializer::Data::Dumper - Creates bridge between Data::Serializer and Data::Dumper

SYNOPSIS

Top

  use Data::Serializer::Data::Dumper;

DESCRIPTION

Top

Module is used internally to Data::Serializer

METHODS

Top

serialize - Wrapper to normalize serializer method name
deserialize - Wrapper to normalize deserializer method name

AUTHOR

Top

Neil Neely <neil@neely.cx>

COPYRIGHT

Top

SEE ALSO

Top

perl(1), Data::Serializer(3), Data::Dumper(3).


Data-Serializer documentation Contained in the Data-Serializer distribution.

package Data::Serializer::Data::Dumper;
BEGIN { @Data::Serializer::Data::Dumper::ISA = qw(Data::Serializer) }

use warnings;
use strict;
use Carp;
use Data::Dumper; 

use vars qw($VERSION @ISA);


$VERSION = '0.05';


#
# Create a Data::Dumper serializer object.
#

sub serialize {
    my $self = shift;
    my ($val) = @_;
    return undef unless defined $val;

    local $Data::Dumper::Indent = 0;
    local $Data::Dumper::Purity = 1;
    local $Data::Dumper::Terse = 1;
    #return Data::Dumper::Dumper($val);
    #Eval'ing this statement will leave $M defined
    return Data::Dumper->Dump([$val],['M']);
}


#
#
# Shamelessly copied from Data::Dumper::Serializer::Data::Dumper
#	With apologies to relevant parties for not getting the 
#	self-referencing right the first time
#

sub deserialize {
    my $self = shift;
    my ($val) = @_;
    return undef unless defined $val;
    my $M = "";
    # Disambiguate hashref (perl may treat it as a block)
    my $N = eval($val =~ /^\{/ ? '+'.$val : $val);
    return $M ? $M : $N unless $@;
    carp "Data::Serializer error: $@\twhile evaluating:\n $val";
}

# avoid used only once warnings
{
    local $Data::Dumper::Terse;
}

1;
__END__

#