in reply to Best technique to code/decode binary data for inter-machine communication?
Is there something better than MIME::Base64?
I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh
Since we are just talking about making printable characters for transmission, you would want to shorten the length of the string, so how about using Math::BaseCnv to go from Base64 to Base128? Or use compression on the file, before doing the base conversion, with something like
#!/usr/bin/perl use Compress::Zlib; use MIME::Base64; my $str = "Hello World! " x 3; my $gzip = Compress::Zlib::memGzip( $str ); my $hex = unpack 'H*', $gzip; my $base64 = encode_base64('Aladdin:open sesame'); my $str_len = length($str); my $gzip_len = length($gzip); my $hex_len = length($hex); my $base64_len = length($base64); # make binary printable ;-) $gzip = '#' x $gzip_len; printf "%3d: %s\n%3d: %s\n%3d: %s\n%3d: %s\n", $str_len, $str, $gzip_len, $gzip, $hex_len, $hex, $base64_len, $bas +e64; __DATA__ 39: Hello World! Hello World! Hello World! 36: #################################### 72: 1f8b0800000000000003f348cdc9c95708cf2fca495154f0c0c90100b9a8ae3827 +000000 29: QWxhZGRpbjpvcGVuIHNlc2FtZQ==
I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh
In Section
Seekers of Perl Wisdom