NAME

Net::BitTorrent::Protocol::BEP03::Bencode - Utility functions for BEP03: The BitTorrent Protocol Specification

SYNOPSIS

my $data = bencode( ... );
my $ref = bdecode( $data );

Description

Bencoding is the BitTorrent protocol's basic serialization and data organization format. The specification supports integers, lists (arrays), dictionaries (hashes), and byte strings.

Functions

By default, nothing is exported.

You may import any of the following functions by name or with the :all tag.

bencode( ... )

$data = bencode( 100 );
$data = bencode( { balance => '100.3', first => 'John', last => 'Smith' } );
$data = bencode( [ { count => 1, product => 'apple' }, 30] );

Expects a single value (basic scalar, array reference, or hash reference) and returns a single string.

bdecode( ... )

$data = bdecode( 'i100e' );
$data = bdecode( 'd7:balance5:100.35:first4:John4:last5:Smithe' );
$data = bdecode( 'ld5:counti1e7:product5:appleei30ee' );

Expects a bencoded string. The return value depends on the type of data contained in the string.

This function will die on malformed data.

See Also

The BitTorrent Protocol Specification

https://bittorrent.org/beps/bep_0003.html

Convert::Bencode
Bencode
Convert::Bencode_XS

Author

Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

CPAN ID: SANKO

License and Legal

Copyright (C) 2008-2026 by Sanko Robinson <sanko@cpan.org>

This program is free software; you can redistribute it and/or modify it under the terms of The Artistic License 2.0. See the LICENSE file included with this distribution or notes on the Artistic License 2.0 for clarification.

When separated from the distribution, all original POD documentation is covered by the Creative Commons Attribution-Share Alike 3.0 License. See the clarification of the CCA-SA3.0.

Neither this module nor the Author is affiliated with BitTorrent, Inc.