Convert::Ascii85(3) Encoding and decoding of ascii85/base85 strings


use Convert::Ascii85;

my $encoded = Convert::Ascii85::encode($data);
my $decoded = Convert::Ascii85::decode($encoded);
use Convert::Ascii85 qw(ascii85_encode ascii85_decode);

my $encoded = ascii85_encode($data);
my $decoded = ascii85_decode($encoded);


This module implements the Ascii85 (also known as Base85) algorithm for encoding binary data as text. This is done by interpreting each group of four bytes as a 32-bit integer, which is then converted to a five-digit base-85 representation using the digits from ASCII 33 ("!") to 117 ("u").

This is similar to MIME::Base64 but more space efficient: The overhead is only 1/4 of the original data (as opposed to 1/3 for Base64).


Convert::Ascii85::encode DATA
Convert::Ascii85::encode DATA, OPTIONS
Converts the bytes in DATA to Ascii85 and returns the resulting text string. OPTIONS is a hash reference in which the following keys may be set:
compress_zero => 0
By default, four-byte chunks of null bytes ("\0\0\0\0") are converted to 'z' instead of '!!!!!'. This can be avoided by passing a false value for "compress_zero" in OPTIONS.
compress_space => 1
By default, four-byte chunks of spaces (' ') are converted to '+<VdL'. If you pass a true value for "compress_space" in OPTIONS, they will be converted to 'y' instead.

This function may be exported as "ascii85_encode" into the caller's namespace.

Convert::Ascii85::decode TEXT
Converts the Ascii85-encoded TEXT back to bytes and returns the resulting byte string. Spaces and linebreaks in TEXT are ignored.

This function may be exported as "ascii85_decode" into the caller's namespace.


Lukas Mai, "<l.mai at>"


Please report any bugs or feature requests to "bug-convert-ascii85 at", or through the web interface at <>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


You can find documentation for this module with the perldoc command.

    perldoc Convert::Ascii85

You can also look for information at:


Copyright 2011 Lukas Mai.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See for more information.