Data::Serializer::Raw(3)

NAME
Data::Serializer::Raw - Provides unified raw interface to perl serializers

SYNOPSIS
  use Data::Serializer::Raw;

  $obj = Data::Serializer::Raw->new();

  $obj = Data::Serializer::Raw->new(serializer => 'Storable');

  $serialized = $obj->serialize({a => [1,2,3],b => 5});
  $deserialized = $obj->deserialize($serialized);

  print "$deserialized->{b}\n";

DESCRIPTION
Provides a unified interface to the various serializing modules currently available.

This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)

EXAMPLES

Please see Data::Serializer::Cookbook(3)

METHODS

new - constructor
      $obj = Data::Serializer::Raw->new();

      $obj = Data::Serializer::Raw->new(
                             serializer => 'Data::Dumper',
                               options  => {},
                            );

    new is the constructor object for Data::Serializer::Raw objects.

    •   The default serializer is "Data::Dumper"

    •   The default options is "{}" (pass nothing on to serializer)

serialize - serialize reference
      $serialized = $obj->serialize({a => [1,2,3],b => 5});

    This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)

deserialize - deserialize reference
      $deserialized = $obj->deserialize($serialized);

    This is a straight pass through to the underlying serializer, nothing else is done. (no encoding, encryption, compression, etc)

serializer - change the serializer
    Currently supports the following serializers:

    Bencode(3)
    Convert::Bencode(3)
    Convert::Bencode_XS(3)
    Config::General(3)
    Data::Denter(3)
    Data::Dumper(3)
    Data::Taxi(3)
    FreezeThaw(3)
    JSON(3)
    JSON::Syck(3)
    PHP::Serialization(3)
    Storable(3)
    XML::Dumper(3)
    XML::Simple(3)
    YAML(3)
    YAML::Syck(3)

    Default is to use Data::Dumper.

    Each serializer has its own caveat's about usage especially when dealing with cyclical data structures or CODE references. Please see the appropriate documentation in those modules for further information.

options - pass options through to underlying serializer
    Currently is only supported by Config::General(3), and XML::Dumper(3).

      my $obj = Data::Serializer::Raw->new(serializer => 'Config::General',
                                      options    => {
                                                 -LowerCaseNames       => 1,
                                                 -UseApacheInclude     => 1,
                                                 -MergeDuplicateBlocks => 1,
                                                 -AutoTrue             => 1,
                                                 -InterPolateVars      => 1
                                                    },
                                                  ) or die "$!\n";

      or

      my $obj = Data::Serializer::Raw->new(serializer => 'XML::Dumper',
                                      options    => { dtd => 1, }
                                      ) or die "$!\n";

store - serialize data and write it to a file (or file handle)
      $obj->store({a => [1,2,3],b => 5},$file, [$mode, $perm]);

      or

      $obj->store({a => [1,2,3],b => 5},$fh);

    Serializes the reference specified using the serialize method and writes it out to the specified file or filehandle.

    If a file path is specified you may specify an optional mode and permission as the next two arguments. See IO::File for examples.

    Trips an exception if it is unable to write to the specified file.

retrieve - read data from file (or file handle) and return it after deserialization
      my $ref = $obj->retrieve($file);

      or

      my $ref = $obj->retrieve($fh);

    Reads first line of supplied file or filehandle and returns it deserialized.

AUTHOR
Neil Neely <neil@neely.cx>.

http://neil-neely.blogspot.com/

BUGS
Please report all bugs here:

http://rt.cpan.org/Public/Dist/Display.html?Name=Data-Serializer

COPYRIGHT AND LICENSE
Copyright (c) 2011 Neil Neely. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.2 or, at your option, any later version of Perl 5 you may have available.

See http://www.perl.com/language/misc/Artistic.html

ACKNOWLEDGEMENTS
Peter Makholm took the time to profile Data::Serializer(3) and pointed out the value of having a very lean implementation that minimized overhead and just used the raw underlying serializers.

SEE ALSO
perl(1), Data::Serializer(3).