NAME
Data::BinaryBuffer - The module to work with binary data effectively
VERSION
version 0.006
SYNOPSIS
use Data::BinaryBuffer;
my $buf = Data::BinaryBuffer->new;
$buf->write($some_data); # PSD file for ex
my $sig = $buf->read(4);
die "This is not PSD file" if $sig ne '8BPS';
my $version = $buf->read_uint16be;
# etc...
DESCRIPTION
NOTE: This module is in very alpha state. API may change without any notice until version 0.1.
Perl is good for strings, bug not very nice to binary data. This class exactly for that.
Data::BinaryBuffer is a data structure similar to the queue, but optimized to work with blocks of arbitrary size. You can write data to one end of buffer and read from another. Data can be written or read in various formats.
METHODS
new
my $buf = Data::BinaryBuffer->new;
Creates empty buffer object.
size
my $size = $buf->size;
Returns current amount of bytes stored in buffer.
write
$buf->write($data);
Write scalar to the buffer.
write_uint8
write_uint16be
write_uint16le
write_uint32be
write_uint32le
write_int8
write_int16be
write_int16le
write_int32be
write_int32le
$buf->write_uint8(255);
$buf->write_int32be($value);
Write one integer to the buffer.
read
my $data = $read($size);
Read $size bytes to Perl scalar.
read_uint8
read_uint16be
read_uint16le
read_uint32be
read_uint32le
read_int8
read_int16be
read_int16le
read_int32be
read_int32le
my $num1 = $buf->read_uint32be;
Read integer from buffer.
read_buffer
my $buf2 = $buf->read_buffer($size);
Same as read
, but return another buffer. This method is very fast for big data.
SEE ALSO
pack/unpack functions in perldoc
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker at https://github.com/vovkasm/data-binarybuffer/issues. You will be notified automatically of any progress on your issue.
Source Code
This is open source software. The code repository is available for public review and contribution under the terms of the license.
https://github.com/vovkasm/data-binarybuffer
git clone https://github.com/vovkasm/data-binarybuffer.git
AUTHOR
Vladimir Timofeev <vovkasm@gmail.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by Vladimir Timofeev.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.