while ($_[0] =~ /(.{1,45})/gs){ $encode .= substr(pack('u', $1), 1); chop($encode); } $encode =~ tr|` -_|AA-Za-z0-9+/|; $align = (3 - length($_[0]) % 3) % 3; $encode =~ s/.{$align}$/'=' x $align/e if($align); $encode =~ s/(.{1,76})/$1\n/g;