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__ # =head1 NAME Data::Serializer::Data::Dumper - Creates bridge between Data::Serializer and Data::Dumper =head1 SYNOPSIS use Data::Serializer::Data::Dumper; =head1 DESCRIPTION Module is used internally to Data::Serializer =head1 METHODS =over 4 =item B - Wrapper to normalize serializer method name =item B - Wrapper to normalize deserializer method name =back =head1 AUTHOR Neil Neely =head1 COPYRIGHT Copyright 2001 by Neil Neely. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO perl(1), Data::Serializer(3), Data::Dumper(3). =cut