# 最近、下がり気味なので保守ついでに

package BEncode7;use base Exporter;@EXPORT=qw/bencode bdecode/;sub bencode($){
my$i=pop;ref$i eq'HASH'?"d@{[join('',map{bencode($_).bencode($i->{$_})}keys%$i)
]}e":ref$i eq'ARRAY'?"l@{[join('',map{bencode($_)}@$i)]}e":$i=~/^([+-]?\d+)$/?
"i${i}e":length($i).":$i"}sub bdecode{local$_=pop;(/^d(.+)e$/s)?{bdecode($1)}:(
/^l(.+)e$/s)?[bdecode("$1")]:(s/^i?([+-]?\d+)e//)?(int("$1"),bdecode($_)):(
/^(\d+)/&&s/\d+\:(.{$1})//s)?("$1",bdecode($_)):undef}7

Convert::BEncodeの7行版。bittorrent等で使われているフォーマット。