#include defs.wh #include defs.wh2 #define _PAGE-TITLE_ Perl API #define _TITLE-HEADER-TEXT_ Perl API #include head.wh It is possible to write extensions to Webc in perl. These extensions are stored in files, and loaded in with the #localcode directive.

Functions can be called in a couple of ways. The currently preferred style is called from a webc file like:

    #localcode calculate.lc
    Calculate(3 * 4 + 5)

The localcode file might look something like:

   #
   #   calculate.lc
   #
   #   This defines the function Calculate which evaluates an
   #   expression and returns the value.
   #
   use vars qw(%Callable);

   sub Calculate
       {
       my($args) = @_;
       my($result);

       $args =~ s/[^\d\-+*\/()]//g;
       eval("\$result = $args");
       return $result;
       }

    $Callable{'Calculate'} = 1;		# Let the function be called
    return 1;
In this case, the string returned by the function is what is used in the webc file to replace the call.


There are a number of variables that you should know about. The %Symbols hash is the symbol table. Perl code is free to play with the symbols.

The OUT file handle is the current output stream (normally). Things written to this stream are put into the HTML output file. #include tail.wh2 #include tail.wh