Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!snorkelwacker.mit.edu!bloom-beacon!eru!hagbard!sunic!lth.se!newsuser From: jh@efd.lth.se (Joergen Haegg) Newsgroups: comp.lang.perl Subject: uuencode in perl? Message-ID: <1991Feb6.091933.27961@lth.se> Date: 6 Feb 91 09:19:33 GMT Sender: newsuser@lth.se (LTH network news server) Reply-To: jh@efd.lth.se (Joergen Haegg) Organization: Lund Institute of Technology, Sweden Lines: 76 I was trying to write a uuencode/uudecode program in perl. (Yes, I know, the c-version is free, but it's fun to try ;-) Not very difficult, since pack has 'u'. But I compared the output with Suns uuencode: sub encode { ($name, $file, @x) = @_; $st_mode = 0622; if ($file) { &Stat($file) || die "stat $file: $!"; } printf OUT "begin %03o %s\n", $st_mode&0777, $file; open(IN, $file) || die "open $file: $!"; while (($n = sysread(IN, $row, 45)) > 0) { $uline = pack("u", $row); print OUT "$uline"; } close (IN); print OUT "\nend\n"; } Testfile: PID TT STAT TIME COMMAND 17364 p2 S 7:12 bash -login 17582 p2 TW 0:04 view ../route.c 18371 p2 R 0:00 ps 2505 p4 I 2:31 -su (bash) 18369 p4 I 0:00 vi uued This script gave begin 644 z M("!0240@5%0@4U1!5" @5$E-12!#3TU-04Y$"C$W,S8T(' R(%,@(" @(#