Data-SplitSerializer

 view release on metacpan or  search on metacpan

lib/Data/SplitSerializer.pm  view on Meta::CPAN

       'a[0]' => { your => 'hash' }
    ) );
 
    # Returns:
    $round_trip = {
       'a[0].your' => 'hash',
    };
 
    # Now protect the hash
    my $round_trip = $dss->serialize( $dss->deserialize_pathval(
       'a[0]' => \{ your => 'hash' }
    ) );
 
    # Returns:
    $round_trip = {
       'a[0]' => \{ your => 'hash' }
    };

=head2 Sparse arrays and memory usage

Since arrays within paths are based on indexes, there's a potential security issue with large indexes causing abnormal memory usage.
In Perl, these two arrays would have drastically different memory footprints:

    my @small;
    $small[0] = 1;
 
    my @large;
    $large[999999] = 1;

This can be mitigated by making sure the Path style you use will limit the total digits for array indexes.  L<Parse::Path> handles
this on all of its paths, but it's something to be aware of if you create your own path classes.

=head1 TODO

This module might split off into individual split serializers, but so far, this is the only one "out in the wild".

=head1 SEE ALSO

L<Parse::Path>

=head1 ACKNOWLEDGEMENTS

Kent Fredric for getting me started on the basic idea.

=head1 AVAILABILITY

The project homepage is L<https://github.com/SineSwiper/Data-SplitSerializer/wiki>.

The latest version of this module is available from the Comprehensive Perl
Archive Network (CPAN). Visit L<http://www.perl.com/CPAN/> to find a CPAN
site near you, or see L<https://metacpan.org/module/Data::SplitSerializer/>.

=for :stopwords cpan testmatrix url annocpan anno bugtracker rt cpants kwalitee diff irc mailto metadata placeholders metacpan

=head1 SUPPORT

=head2 Internet Relay Chat

You can get live help by using IRC ( Internet Relay Chat ). If you don't know what IRC is,
please read this excellent guide: L<http://en.wikipedia.org/wiki/Internet_Relay_Chat>. Please
be courteous and patient when talking to us, as we might be busy or sleeping! You can join
those networks/channels and get help:

=over 4

=item *

irc.perl.org

You can connect to the server at 'irc.perl.org' and talk to this person for help: SineSwiper.

=back

=head2 Bugs / Feature Requests

Please report any bugs or feature requests via L<https://github.com/SineSwiper/Data-SplitSerializer/issues>.

=head1 AUTHOR

Brendan Byrd <BBYRD@CPAN.org>

=head1 CONTRIBUTOR

Brendan Byrd <bbyrd@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is Copyright (c) 2013 by Brendan Byrd.

This is free software, licensed under:

  The Artistic License 2.0 (GPL Compatible)

=cut



( run in 1.611 second using v1.01-cache-2.11-cpan-39bf76dae61 )