2009-04-15 12:55:41 +09:00
|
|
|
package Data::MessagePack;
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
2009-07-01 17:45:18 +09:00
|
|
|
use 5.008001;
|
2009-04-15 12:55:41 +09:00
|
|
|
|
2010-09-01 08:19:05 +09:00
|
|
|
our $VERSION = '0.15';
|
2009-07-03 01:49:37 +09:00
|
|
|
our $PreferInteger = 0;
|
2009-04-15 12:55:41 +09:00
|
|
|
|
2009-07-30 16:22:00 +09:00
|
|
|
our $true = do { bless \(my $dummy = 1), "Data::MessagePack::Boolean" };
|
|
|
|
our $false = do { bless \(my $dummy = 0), "Data::MessagePack::Boolean" };
|
|
|
|
sub true () { $true }
|
|
|
|
sub false () { $false }
|
|
|
|
|
2010-09-01 11:59:01 +09:00
|
|
|
if ( !__PACKAGE__->can('pack') ) { # this idea comes from Text::Xslate
|
2010-09-01 16:04:25 +09:00
|
|
|
my $backend = $ENV{ PERL_DATA_MESSAGEPACK } || '';
|
|
|
|
if ( $backend !~ /\b pp \b/xms ) {
|
2010-09-01 11:59:01 +09:00
|
|
|
eval {
|
|
|
|
require XSLoader;
|
|
|
|
XSLoader::load(__PACKAGE__, $VERSION);
|
|
|
|
};
|
2010-09-01 16:04:25 +09:00
|
|
|
die $@ if $@ && $backend =~ /\b xs \b/xms; # force XS
|
2010-09-01 11:59:01 +09:00
|
|
|
}
|
|
|
|
if ( !__PACKAGE__->can('pack') ) {
|
|
|
|
require 'Data/MessagePack/PP.pm';
|
|
|
|
}
|
|
|
|
}
|
2009-04-15 12:55:41 +09:00
|
|
|
|
|
|
|
1;
|
|
|
|
__END__
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
Data::MessagePack - messagepack
|
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
my $packed = Data::MessagePack->pack($dat);
|
|
|
|
my $unpacked = Data::MessagePack->unpack($dat);
|
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
|
|
|
Data::MessagePack is a binary packer for perl.
|
|
|
|
|
2010-05-03 01:09:21 +09:00
|
|
|
=head1 METHODS
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
|
|
|
=item my $packed = Data::MessagePack->pack($data);
|
|
|
|
|
|
|
|
pack the $data to messagepack format string.
|
|
|
|
|
|
|
|
=item my $unpacked = Data::MessagePack->unpack($msgpackstr);
|
|
|
|
|
|
|
|
unpack the $msgpackstr to messagepack format string.
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
2009-07-02 14:25:48 +09:00
|
|
|
=head1 Configuration Variables
|
|
|
|
|
|
|
|
=over 4
|
|
|
|
|
2009-07-02 14:29:49 +09:00
|
|
|
=item $Data::MessagePack::PreferInteger
|
2009-07-02 14:25:48 +09:00
|
|
|
|
|
|
|
Pack the string as int when the value looks like int(EXPERIMENTAL).
|
|
|
|
|
|
|
|
=back
|
|
|
|
|
2009-04-15 12:55:41 +09:00
|
|
|
=head1 AUTHORS
|
|
|
|
|
|
|
|
Tokuhiro Matsuno
|
|
|
|
|
2010-01-04 12:10:46 +09:00
|
|
|
=head1 THANKS TO
|
|
|
|
|
|
|
|
Jun Kuriyama
|
|
|
|
|
2009-10-22 14:32:39 +09:00
|
|
|
=head1 LICENSE
|
|
|
|
|
|
|
|
This library is free software; you can redistribute it and/or modify
|
|
|
|
it under the same terms as Perl itself.
|
|
|
|
|
|
|
|
|
2009-04-15 12:55:41 +09:00
|
|
|
=head1 SEE ALSO
|
|
|
|
|
|
|
|
L<http://msgpack.sourceforge.jp/>
|
|
|
|
|