I am happy (or ashamed :)) to announce version 0.19 of webc. This version defines a new directive: #callable function This indicates that anyplace webc sees: blah blah blah function(text) blah blah blah that the named function is called from the Perl code. Thus it is a good idea to use the #localcode directive to load additional code into the compiler. The function(text) is replaced with whatever the named function returns. An example use of this capability is to define a function which takes a person's name and shortens it to just the first name followed by the first initial of the last name. I can create a file named name.pl with the following contents: sub Name { my($name) = @_; $name =~ s/(\S)\S*$/$1/; return $name; } 1; Then in my webc source, I have the following: #localcode name.pl The following people participated in the program: Name(Dave Regan), Name(John Sechrest), Name(Joe Random) The output for this would be: The following people participated in the program: Dave R, John S, Joe R Note that this (like most of webc) is a hack based upon need. Because functions are introduced with the #callable directive, this should not break any existing applications. The program can be found at: http://www.ao.com/~regan/Webc/webc with the home page at: http://www.ao.com/~regan/Webc An entire distribution (including html documentation, small examples, etc.) is at: http://www.ao.com/~regan/Webc/webc.tar.gz Feel free to snarf a copy and install it in the typical way on your site. Dave Regan regan@ao.com