The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Data::Serializable - Moose role that adds serialization support to any class

VERSION

version 0.40.0

SYNOPSIS

    package MyClass;
    use Moose;
    with 'Data::Serializable';
    no Moose;

    package main;
    my $obj = MyClass->new( serializer_module => 'JSON' );
    my $json = $obj->serialize( "Foo" );
    ...
    my $str = $obj->deserialize( $json );

DESCRIPTION

A Moose-based role that enables the consumer to easily serialize/deserialize data structures. The default serializer is Storable, but any serializer in the Data::Serializer hierarchy can be used automatically. You can even install your own custom serializer if the pre-defined ones are not useful for you.

ATTRIBUTES

throws_exception

Defines if methods should throw exceptions or return undef. Default is to throw exceptions. Override default value like this:

    has '+throws_expection' => ( default => 0 );

serializer_module

Name of a predefined module that you wish to use for serialization. Any submodule of Data::Serializer is automatically supported. The built-in support for Storable doesn't require Data::Serializer.

serializer

If none of the predefined serializers work for you, you can install your own. This should be a code reference that takes one argument (the message to encode) and returns a scalar back to the caller with the serialized data.

deserializer

Same as serializer, but to decode the data.

METHODS

serialize($message)

Runs the serializer on the specified argument.

deserialize($message)

Runs the deserializer on the specified argument.

SEE ALSO

SUPPORT

You can find documentation for this module with the perldoc command.

  perldoc Data::Serializable

Websites

Bugs

Please report any bugs or feature requests to bug-data-serializable at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Data-Serializable. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

AUTHOR

Robin Smidsrød <robin@smidsrod.no>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by Robin Smidsrød.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.