I'd suggest something like:

  $uuencode = "begin 644 -\n";
  while ($raw_edid =~ m/\G(.{1,45})/sgc) {
      $uuencode .= pack("u", $1);
  }
  $uuencode .= "`\nend";


to generate the UUencoded string (adapted from Convert::UU)
and:

  if (!$base64) {
      $base64 = "";
      my ($string, $mod3, $enc);
      $raw_edid = $raw_edid . "";
      while ($raw_edid =~ m/\G(.{1,45})/sgc) {
          $string = $1;
          $mod3 - length($string) % 3;
          $string .= "\0", $mod3 -= 3 if $mod3;
          $enc = pack("u", $string);
          $enc =~ s/.//;
          $enc =~ tr#`!-_#A-Za-z0-9+/#;
          substr($enc, $mod3) =~ tr/A/=/;
          $base64 .= $enc;
      }
  }      


to replace the use of uuencode to generate the Base64-encoded string -
if anyone cares about the possible absence of MIME::Base64 these days.

That (Screen.pm) isn't the only use of uuencode; I think I saw one
other. Will be worth replacing that too just for efficiency, even if
there's no chance of problems passing input to it.


Cheers,


Nick
-- 
Nick Phillips / +64 3 479 4195 / nick.phill...@otago.ac.nz
Faculty of Medicine, University of Otago

Reply via email to