MIME::Base64Section: Perl Programmers Reference Guide (3)Updated: 2001-09-21 |
MIME::Base64Section: Perl Programmers Reference Guide (3)Updated: 2001-09-21 |
use MIME::Base64;
$encoded = encode_base64('Aladdin:open sesame');
$decoded = decode_base64($encoded);
The following functions are provided:
Any character not part of the 65-character base64 subset is silently ignored. Characters occurring after a '=' padding character are never decoded.
If the length of the string to decode, after ignoring non-base64 chars, is not a multiple of 4 or if padding occurs too early, then a warning is generated if perl is running under "-w".
If you prefer not to import these routines into your namespace, you can call them as:
use MIME::Base64 ();
$encoded = MIME::Base64::encode($decoded);
$decoded = MIME::Base64::decode($encoded);
use MIME::Base64 qw(encode_base64);
open(FILE, "/var/log/wtmp") or die "$!";
while (read(FILE, $buf, 60*57)) {
print encode_base64($buf);
}
or if you know you have enough memory
use MIME::Base64 qw(encode_base64); local($/) = undef; # slurp print encode_base64(<STDIN>);
The same approach as a command line:
perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' <file
Decoding does not need slurp mode if every line contains a multiple of four base64 chars:
perl -MMIME::Base64 -ne 'print decode_base64($_)' <file
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Distantly based on LWP::Base64 written by Martijn Koster <m.koster@nexor.co.uk> and Joerg Reichelt <j.reichelt@nexor.co.uk> and code posted to comp.lang.perl <3pd2lp$6gf@wsinti07.win.tue.nl> by Hans Mulder <hansm@wsinti07.win.tue.nl>
The XS implementation uses code from metamail. Copyright 1991 Bell Communications Research, Inc. (Bellcore)