MIME::Base64 is a very small module, and the encode method is particularly small, since pack() does most of the work. They use pack to create a uuencoded string, then tr// to translate from the uuencode charset to the Base64 charset:
Copying the source, then, with a few minor modifications
sub b6464 {
my $orig=shift;
my $string = pack("u",$orig);
$string =~ s/^.//mg;
$string =~ s/\n//g;
# use tr to translate from UUE to Base64
$string =~ tr|` -_|AA-Za-z0-9+/|;
# fix padding at the end
my $padding = (3 - length($orig) % 3) % 3;
$string =~ s/.{$padding}$/'=' x $padding/e if $padding;
# break string into lines of 64 chars or less
$string =~ s/(.{1,64})/$1\n/g;
return $string;
}