NAME
BSON - Pure Perl implementation of MongoDB's BSON serialization
VERSION
Version 0.03
SYNOPSIS
use BSON qw/encode decode/;
my $document = {
_id => BSON::ObjectId->new,
date => BSON::Time->new,
name => 'James Bond',
age => 45,
amount => 24587.45,
badass => BSON::Bool->true
};
my $bson = encode( $document );
my $doc2 = decode( $bson, %options );
DESCRIPTION
This module implements BSON serialization and deserialization as described at http://bsonspec.org. BSON is the primary data representation for MongoDB.
EXPORT
The module does not export anything. You have to request encode
and/or decode
manually.
use BSON qw/encode decode/;
SUBROUTINES
encode
Takes a hashref and returns a BSON string.
my $bson = encode({ bar => 'foo' });
decode
Takes a BSON string and returns a hashref.
my $hash = decode( $bson, ixhash => 1 );
The options after $bson
are optional and they can be any of the following:
options
ixhash => 1|0
If set to 1
decode
will return a Tie::IxHash ordered hash. Otherwise, a regular unordered hash will be returned. Turning this option on entails a significant speed penalty as Tie::IxHash is slower than a regular Perl hash. The default value for this option is 0.
THREADS
This module is thread safe.
SEE ALSO
BSON::Time, BSON::ObjectId, BSON::Code, BSON::Binary, BSON::Bool, BSON::MinKey, BSON::MaxKey, BSON::Timestamp, Tie::IxHash, MongoDB
AUTHOR
minimalist, <minimalist at lavabit.com>
BUGS
Bug reports and patches are welcome. Reports which include a failing Test::More style test are helpful and will receive priority.
DEVELOPMENT
The source code of this module is available on GitHub: https://github.com/naturalist/Perl-BSON
LICENSE AND COPYRIGHT
Copyright 2011 minimalist.
This program is free software; you can redistribute it and/or modify it under the terms as perl itself.