[comp.lang.perl] BBS written in perl

rahard@eeserv.ee.umanitoba.ca (Budi Rahardjo) (10/27/90)

Has anybody written a BBS program in perl ? (Crazy ??)
Well, a friend of mine wants to write his own BBS program,
(he hasn't decided which machine he's going to use, MSDOS,
Amiga or CP/M)
I wrote a goofy BBS program long time ago but never get
it done, no time.
Now here is the code that I have so far.... (around 35 K total)
Feel free to try it out....

Have fun,
-- budi
   (maybe you have to cut my signature too)
--------------- cut here ------------------

begin 644 perl-bbs.tar.Z
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
#I^T!
 
end
--
Budi Rahardjo                 <rahardj@ccu.umanitoba.ca>
<rahard@ee.umanitoba.ca>   <rahard@budi.ee.umanitoba.ca>
Electrical Engineering - University of Manitoba - Canada