in reply to base64 encoding

If you can't install the module, just use it's code. Streight out of Mime::Base64:
sub old_encode_base64 ($;$) { my $res = ""; my $eol = $_[1]; $eol = "\n" unless defined $eol; pos($_[0]) = 0; # ensure start at the beg +inning $res = join '', map( pack('u',$_)=~ /^.(\S*)/, ($_[0]=~/(.{1,45})/ +gs)); $res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs # fix padding at the end my $padding = (3 - length($_[0]) % 3) % 3; $res =~ s/.{$padding}$/'=' x $padding/e if $padding; # break encoded string into lines of no more than 76 characters ea +ch if (length $eol) { $res =~ s/(.{1,76})/$1$eol/g; } return $res; }

-- Dan

Replies are listed 'Best First'.
Re: (z) Re: base64 encoding
by spike_hodge (Novice) on Feb 27, 2003 at 08:42 UTC
    I also am looking for a simple way to base64 a file. I have a small mail module that sends formatted e-mails via sendmail and I want to add the ability of sending attachmnets. The code you posted looks like the answer; question:- is the old_encode_base64 sub expecting a file to be read in line by line or should the whole file be slurped up into one scalar variable and the sub called with that variable?

      I believe you're expected to slurp the whole file you want to encode, and hand it over to the sub. Depending on the filesize, it might hurt your machine though. I'm not sure, but I doubt you can encode a file line by line and get the same result.

      -- zigdon