[comp.lang.perl] perl examples suite

tchrist@convex.com (Tom Christiansen) (03/14/90)

For those of you who've requested my perl examples suite, do please
try to include a valid return path.  I've received requests that 
neither my mailer nor my manual fiddling can get to reply.  If you've
sent me a request, and haven't received a reply, then you probably
should resend it with an explicit return path in the BODY of the message.

Here's the README that comes with the package, which is in a slightly
more advanced state than currently exits at Ohio State.  This should be 
fixed "shortly".  

thanks,

--tom

% cat README
Last Updated: Mon Mar 12 07:05:48 CST 1990

The files in this directory were (mostly) written by Tom Christiansen
<tchrist@convex.com>.  If they end in ".pl", then they are not meant to
be stand-alone programs but rather should be included either with
#include or else with do 'foo.pl' instead.  The ".1l" and ".8l" files
are man pages.  Many of these programs were presented by me at the Perl
mini-tutorial at USENIX in Washington DC (January 90), but others here are
far too complex for that forum, especially pstruct and cfman.  

MANIFEST        "ls -lRF" listing of files in this directory

README          this file

easy            simple command line examples 
                (simplicity itself)

getline.pl      subr to read lines with escaped newlines
                (shows subroutines, flow control)

today           parallel "cal" output
                (shows starting many pipes)

xpost           check where news articles are xposted 
                (shows dbm files as arrays)

sortbyfield     subr to sort array on field N 
                (shows clever way to do index sorting)
                (inspired by Randal Schwartz)

getalias        how do aliases expand
nfinger         preprocess finger args for aliases, mailing lists 
                (both show recursive subrs, dbm files as arrays)

badrhosts       find +'s in ~/.rhosts files, send mail
                (shows potential for sysadmin tasks)

forwmail        redeliver mis-sent mail 
                (shows potential for sysadmin tasks)

pstruct         read and write C source showing structure layouts
pstruct.1l      man page for same

ctime.pl        ctime lookalike in perl

nlist           an nlist function returning assoc array 
                (shows how to pass and recv all parm types)

flush.pl        fflush() type subroutines by lwall
                (shows pass-by-reference on file descriptors)
                    
syslog.pl       syslog(3) compatibility library
                (shows use of packages for local functions)

uuhost          client and server for simple program that connects
uupath          link for uuhost
uuhostd         to simple remote server who runs one of two binaries for you
                (shows how to use sockets in perl)

source.pl       a safe way to use do $file and get good error messages

itimer.pl       [sg]etitimer and alarm in perl using indirect syscall()s.
ttimer          test program for previous 

glob.pl         package to glob in shell or regexp style, no size limits
tglob           test program for previous

now-what        perl replacement for /usr/local/mh/bin/whatnow

statmon         talk to various machines' inetds' UDP time ports. good 
                examples of select, packet IPC, and writing scripts to 
                take advantage of the dump operator.
statmon.README  instructions for using and porting statmon

slides/         troff source for perl tutorial slides

man/            directory for perl rewrite of /usr/ucb/man, friends, and foes

h2pl/           directory of tools for converting *.h files to *.pl ones

cbreak.pl       cbreak() and cooked() subroutines
tcbreak         test program for previous
cbreak2.pl      as before but using ioctl.pl not ioctl.h
tcbreak2        test program for previous
--

    Tom Christiansen                       {uunet,uiucdcs,sun}!convex!tchrist 
    Convex Computer Corporation                            tchrist@convex.COM
                 "EMACS belongs in <sys/errno.h>: Editor too big!"