use Test::More; use Bencode qw( bencode ); my @test = ( 'i4e' => 4, 'i0e' => 0, 'i-10e' => -10, 'i12345678901234567890e' => '12345678901234567890', '0:' => '', '3:abc' => 'abc', '10:1234567890' => \'1234567890', 'le' => [], 'li1ei2ei3ee' => [ 1, 2, 3 ], 'll5:Alice3:Bobeli2ei3eee' => [ [ 'Alice', 'Bob' ], [ 2, 3 ] ], 'de' => {}, 'd3:agei25e4:eyes4:bluee' => { 'age' => 25, 'eyes' => 'blue' }, 'd8:spam.mp3d6:author5:Alice6:lengthi100000eee' => { 'spam.mp3' => { 'author' => 'Alice', 'length' => 100000 } }, ); plan tests => 0 + @test / 2; while ( my ( $frozen, $thawed ) = splice @test, 0, 2 ) { is_deeply( bencode( $thawed ), $frozen, "encode $frozen" ); } # vim: set ft=perl: