You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by ri...@hyperreal.org on 1998/08/11 15:57:59 UTC

cvs commit: modperl-site/embperl/eg/images jazzbkgd.gif

richter     98/08/11 06:57:58

  Added:       embperl  Changes.pod.1.html Changes.pod.10.html
                        Changes.pod.11.html Changes.pod.12.html
                        Changes.pod.13.html Changes.pod.14.html
                        Changes.pod.15.html Changes.pod.16.html
                        Changes.pod.17.html Changes.pod.18.html
                        Changes.pod.19.html Changes.pod.2.html
                        Changes.pod.20.html Changes.pod.21.html
                        Changes.pod.22.html Changes.pod.23.html
                        Changes.pod.24.html Changes.pod.3.html
                        Changes.pod.4.html Changes.pod.5.html
                        Changes.pod.6.html Changes.pod.7.html
                        Changes.pod.8.html Changes.pod.9.html
                        Changes.pod.cont.html Embperl.pod.1.html
                        Embperl.pod.10.html Embperl.pod.11.html
                        Embperl.pod.12.html Embperl.pod.13.html
                        Embperl.pod.14.html Embperl.pod.2.html
                        Embperl.pod.3.html Embperl.pod.4.html
                        Embperl.pod.5.html Embperl.pod.6.html
                        Embperl.pod.7.html Embperl.pod.8.html
                        Embperl.pod.9.html Embperl.pod.cont.html
                        Examples.html Faq.pod.1.html Faq.pod.2.html
                        Faq.pod.3.html Faq.pod.4.html Faq.pod.5.html
                        Faq.pod.6.html Faq.pod.7.html Faq.pod.8.html
                        Faq.pod.cont.html INSTALL.pod.1.html
                        INSTALL.pod.cont.html Intro.pod.1.html
                        Intro.pod.2.html Intro.pod.3.html Intro.pod.4.html
                        Intro.pod.5.html Intro.pod.6.html Intro.pod.7.html
                        Intro.pod.8.html Intro.pod.cont.html
                        Sites.pod.1.html Sites.pod.cont.html line.jpg
                        sq.gif
               embperl/eg config.ep.html config.html config.src.html
                        dbi1.ep.html dbi1.html dbi1.src.html dbi2.ep.html
                        dbi2.html dbi2.src.html execute.html
                        execute.src.html if.ep.html if.html if.src.html
                        input.ep.html input.src.html input_1.html
                        input_2.html input_3.html lists.ep.html lists.html
                        lists.src.html loop.ep.html loop.html loop.src.html
                        neu.ep.html neu.src.html recordset.ep.html
                        recordset.html recordset.src.html table.ep.html
                        table.html table.src.html
               embperl/eg/images jazzbkgd.gif
  Log:
  Pages for new Embperl website
  Sorry for the large mail, I didn't found a way to commit,
  whithout a commit message
  
  Revision  Changes    Path
  1.1                  modperl-site/embperl/Changes.pod.1.html
  
  Index: Changes.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="1_1_0_28_Jul_98">1.1.0 28 Jul 98</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">PREV (Revision History - Content)</a>]&nbsp;&nbsp; [<a href="Changes.pod.2.html">NEXT (1.1b2 27 Jun 98)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Added support for perl5.005 (currently only without threads!)
     - Nesting of metacommands and html tags is now independend of
       each other. 
     - Added examples in eg/x for do .. until, foreach, if, 
       DBI datbase access, DBIx::Recordset database access and a
       input- / confirmation form.
     - Added optUndefToEmptyValue which will cause Embperl to treat non
       existent values in %fdat as empty string in input tags, as suggested
       by Steve Willer.
     - Catch &quot;die&quot; within EMBPERL_INPUT/OUTPUT_FUNC and write error
       message to the logfile
     - Write error message of LWP::UserAgent in ProxyInput to logfile
       if any
     - Added test for POST Requests
     - Added support for tests when mod_perl is build with USE_DSO. 
       Spotted by Christian Oyarzun.
  </PRE>
  <P>
  <PRE>   - Selects and checkboxes are setup correctly if state is set via %fdat.
       Spotted by Todd Eigenschink and Steve Willer.
     - Changes URL escaping than only space, '+', '&amp;', '=' and chars &lt; 0x20
       will be escaped to avoid problems with older netscape browsers.
     - Added missing documentation for req_rec parameter of the Execute
       function. Spotted by Eric Cholet.
     - Send correct http header for error page, spotted by Steve Willer
     - Fixed a memory leak in foreach metacommand
     - Removed limit of 2048 Bytes for GET requests data (there is no
       limit anymore. Spotted by Steve Willer
     - Read all POSTed data (not just the first 1024 Bytes). Patch from
       Steve Willer.
     - Removed some compiler warnings spotted by Tarang Kumar Patel
     - Make sure all data is flushed to the logfile at the end of
       each request
     - Fixed a bug that causes Init to set DebugFlags to 1 instead of 0.
       Spotted by Eric Cholet.
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">PREV (Revision History - Content)</a>]&nbsp;&nbsp; [<a href="Changes.pod.2.html">NEXT (1.1b2 27 Jun 98)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.10.html
  
  Index: Changes.pod.10.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.10</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_23_beta_31_Dec_1997">0.23-beta 31 Dec 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.9.html">PREV (0.24-beta 13 Jan 1998 )</a>]&nbsp;&nbsp; [<a href="Changes.pod.11.html">NEXT (0.22-beta 28 Dec 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Fixed a bug which caused $req_rec to be not defined anymore (Thanks to
       Todd R. Eigenschink for the hint and debugging)
     - Fixed a bug in escaping special HTML char to normal ascii (Thanks to
       Todd R. Eigenschink for the hint)          
     - Makefile.PL now sets the path to your Perl binary in embpexec.pl and
       embpexec.test.pl, so that it works regardless of where your Perl is located
       (Thanks to Randall Schwartz for the hint)
     - Added the SSLDisable to the test config when running an httpsd. (Thanks
       to David Scott for the hint and Ralf S. Engelschall for the Syntax)
     - Fixed a bug in &lt;META&gt; tag interpretation which was causing random errors 
       when not compiled for mod_perl
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.9.html">PREV (0.24-beta 13 Jan 1998 )</a>]&nbsp;&nbsp; [<a href="Changes.pod.11.html">NEXT (0.22-beta 28 Dec 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.11.html
  
  Index: Changes.pod.11.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.11</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_22_beta_28_Dec_1997">0.22-beta 28 Dec 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.10.html">PREV (0.23-beta 31 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.12.html">NEXT (0.21-beta 25 Dec 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Changed include path generated in Makefile.PL so Embperl also
        compiles with apache_1.3b3 (Thanks to Doug Bagley for the hint)  
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.10.html">PREV (0.23-beta 31 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.12.html">NEXT (0.21-beta 25 Dec 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.12.html
  
  Index: Changes.pod.12.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.12</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_21_beta_25_Dec_1997">0.21-beta 25 Dec 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.11.html">PREV (0.22-beta 28 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.13.html">NEXT (0.20-beta 15 Nov 97)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Embperl offline mode now works under Win 32 (mod_perl and cgi mode
        not tested under Win 32 yet, but maybe it works too)
      - Totally reworked safenamespace and operatormask handling. Works now
        without memory leak, is fully configurable and also does p-code
        caching. If you use it, please look at the documentation, because
        the configuration has changed.
      - Embperl now sends its own error document if it detects an error.
        The page contains all the error messages and if you have the
        dbgLogLink enabled, all errors are links to the corresponding
        line in the logfile. (this can be disabled with optDisableEmbperlErrorPage)
      - Added new metacommand [$VAR ... $], which can be used to declare
        variables and apply the strict pragma (same as use strict ; use vars )  
      - Added debug flag dbgHeadersIn which causes Embperl to log all http 
        headers which are received from the client
      - Don't change any unknown HTML Escapes (i.e. &amp;&amp; has been translated
        to ? in versions &lt; 0.21)
      - dbgShowCleanup logs all variables which are automatically undefined at the
        end of a request (for scalars the value is also shown)
      - Error messages will also be cached, so that the compiling of the code
        only takes place once, because erroneous Perl code will cause memory
        leaks in Perl itself if it's compiled on and on and on.
      - Optimized the compiling of the embedded Perl code
      - Changed use Apache::Constants to conform with the new default exports
        introduced in mod_perl-1.07_01
      - Output of the 'hidden' metacommand is sorted in the same order as the input
        from the formfields (sorting order can also be supplied as third argument)
      - &lt;meta http-equiv= ... &gt; will override the corresponding http header
        (this keeps netscape from asking the user to reload the document
        when the content-type differs between the http header and the
        meta http-equiv)
        This can also be used to set http headers
        
      - Fixed a problem that Embperl magic variables do not work when
        the package exists before the first call to Embperl
      - Fixed a problem that caused a SIGSEGV when retrieving the same document
        containing a Perl error for the second time from the same child
      - Fixed a problem that caused Embperl to terminate in offline/cgi-mode
        when the file was not found or when access was forbidden
      - Fixed a problem with the 'hidden' metacommand, which came up when 
        arguments were supplied with surrounding spaces
      - Fixed a problem that Embperl did not handle metacommands correctly
        when HTML tags (e.g. &lt;br&gt;) were embedded
        
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.11.html">PREV (0.22-beta 28 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.13.html">NEXT (0.20-beta 15 Nov 97)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.13.html
  
  Index: Changes.pod.13.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.13</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_20_beta_15_Nov_97">0.20-beta 15 Nov 97</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.12.html">PREV (0.21-beta 25 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.14.html">NEXT (0.19-beta 29 Oct 97)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Every file is executed in a separate package (don't confuse this 
        with safe namespaces) to reduce unwanted effects on each other
      - Added the configuration directive EMBPERL_PACKAGE which can be used to override
        the automatically-generated package name
      - The namespace (package) used by a request is cleaned up afterwards.
        That means that every scalar, hash or array is undef'ed after the 
        request to make sure nothing is lying around to possibly make the next request
        misbehave.
        This requires mod_perl with PERL_CLEANUP=1 and PERL_STACKED_HANDLER=1!
        NOTE: To get persistent variables, place them in another namespace i.e.
        write $persistent::x instead of $x 
      - Added configuration directive EMBPERL_OPTIONS to configure various runtime
        options. Now only the scalar cleanup can be disabled.
      - use log_error for writing to Apache error log to get timestamp
      - Escaping inside an &lt;A&gt; tag is changed from an HTML escape to a URL escape
        i.e. the space is translated to + and &amp; is translated to %26 and so on
      - Escaping can now be turned on and off via $escmode
      - Concats ENV and cgi_env under mod_perl so that PerlSetEnv can be used
        instead of SetEnv for configuration. In contrast to SetEnv, PerlSetEnv
        allows different values per directory/virtual host
      - Added two links to show source-loglines and eval-loglines when dbgLogLink
        is enabled to have a quick jump to the logfile
      - Reget pid for every request, so the correct one will be written to the
        logfile, also when Embperl is loaded at server startup
      - Check error log in make test, added test for error output
  </PRE>
  <P>
  <PRE>    - Fixed a bug which causes Embperl to cause a SIGSEGV when a Perl syntax
        error occurred
      - Fixed a bug so that a '&gt;' inside of [+/- ... -/+] is not detected as the end
        of an HTML tag (Thanks to Todd R. Eigenschink)
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.12.html">PREV (0.21-beta 25 Dec 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.14.html">NEXT (0.19-beta 29 Oct 97)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.14.html
  
  Index: Changes.pod.14.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.14</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_19_beta_29_Oct_97">0.19-beta 29 Oct 97</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.13.html">PREV (0.20-beta 15 Nov 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.15.html">NEXT (0.18-beta 25 Oct 97)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Rewrote the code for the LOG handle. Now the handle LOG is tied so that every
        print/printf is written to embperl.log at the right position. Use this to 
        do logging from your embedded code or modules
      
      - Fixed a bug which caused garbage to be displayed in dynamic tables (or made 
        parts of the table disappear) 
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.13.html">PREV (0.20-beta 15 Nov 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.15.html">NEXT (0.18-beta 25 Oct 97)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.15.html
  
  Index: Changes.pod.15.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.15</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_18_beta_25_Oct_97">0.18-beta 25 Oct 97</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.14.html">PREV (0.19-beta 29 Oct 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.16.html">NEXT (0.17-beta  30 Aug 97)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Added caching of p-code. Now all Perl code is compiled only once. On the
       second request, the compiled p-code is used. This makes, for example, the 
       table.htm from the test about 4 times faster on the second run then it was in
       previous versions of Embperl. Also, tables and loops are faster in the first
       request, because the code is only compiled in the first iteration.  
     - &lt;Select&gt;/&lt;option&gt; is now handled like &lt;input&gt;, this means that if a value
       for the select exists in %fdat, the corresponding option is automatically
       selected.
     - Added support for table heading (&lt;th&gt; tag). If all cells in a row are surrounded
       by &lt;th&gt;/&lt;/th&gt; instead of &lt;td&gt;/&lt;/td&gt; the row is interpreted as column headings and
       printed only once. Row headings are not supported yet, but in one of the next versions... 
     - Added support for multipart/formdata to support fileupload. Embperl automatically 
       detects  multipart/formdata and lets CGI.pm handle it. The results are also
       present in @ffld and %fdat like for normal formdata. See CGI.pm for more docs.
       (Thanks to eigenstr@mixi.net for the idea and material)
     - Now all the output is kept in memory and the http-header are sent when the
       processing is finish. This gives the ability to set http-headers (only under mod_perl)
       within the page. Also now the Content-Length can be sent in the http-header.
       (Thanks to eigenstr@mixi.net for the idea and material)
     - Added tests for mod_perl mode and running as cgi-script, if compilation
       for mod_perl is enabled (Thanks to Doug MacEachern for lots of ideas
       and code I have borrowed from his mod_perl)
     - Removed &quot;= true&quot; in MailFormTo which caused a warning and didn't declare
       syserr_list in ep.h on FreeBSD (Thanks to Michael Fuhr for the hints)
     - Added SYSNOPSIS section to docs to avoid pod2man warning and changed
       apache/src/regx to apache/src/regex in Makefile.PL (Thanks to Bob Wilkinson)
     - Splitted C-sources in some more source files
  </PRE>
  <P>
  <PRE>   - Fixed two minor memory leaks. Now the Embperl test suite can run 1000 times and
       more without making the httpd grow!
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.14.html">PREV (0.19-beta 29 Oct 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.16.html">NEXT (0.17-beta  30 Aug 97)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.16.html
  
  Index: Changes.pod.16.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.16</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_17_beta_30_Aug_97">0.17-beta  30 Aug 97</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.15.html">PREV (0.18-beta 25 Oct 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.17.html">NEXT (0.16-beta  29 Aug 97)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Removed some Compiler Warnings (Thanks to Ian Kallen for reporting them)
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.15.html">PREV (0.18-beta 25 Oct 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.17.html">NEXT (0.16-beta  29 Aug 97)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.17.html
  
  Index: Changes.pod.17.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.17</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_16_beta_29_Aug_97">0.16-beta  29 Aug 97</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.16.html">PREV (0.17-beta  30 Aug 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.18.html">NEXT (0.15-beta  11 July 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Added more restrictive access check when running under mod_perl 
       * Option ExecCGI must be set
       * must not be a directory
     - Added a (few) more docs about how to view the Embperl logfile with
       your browser
     - Added a declaration for error-dependent stuff to compile on Solaris, check errno before
       accessing sys_errlist to avoid SIGSEVs, Fixed another warning from Sun Pro C Compiler
       (Thanks to Dan Peterson)
     - Switched I/O to PerlIO if supported by installed Perl version.
       Should now work with sfio (not tested yet)
     - Added possibilty to include Embperl commands in all HTML tags 
       (did not work for body, table and tr tags in previous versions)
     - Will now preserve case of HTML tags
     - Do not interpret unknown HTML tags in any way, so as to handle &quot;&lt;&quot; characters
       which do not start a HTML tag better 
     - Do not display the time needed for the request if CLOCKS_PER_SEC not
       defined (e.g. SunOS - Thanks to Dan Peterson)
     - Added apache_xx/src/regx to include path, to avoid problems when
       Apache was built with its own regx library
     - Now Embperl shows which tags don't match in error message (table, dir, select etc.)
     
     - Fixed a bug which caused &quot;[&quot; characters to be printed even in a false 
       if path   
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.16.html">PREV (0.17-beta  30 Aug 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.18.html">NEXT (0.15-beta  11 July 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.18.html
  
  Index: Changes.pod.18.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.18</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_15_beta_11_July_1997">0.15-beta  11 July 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.17.html">PREV (0.16-beta  29 Aug 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.19.html">NEXT (0.14-beta 30 Juni 1997  )</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Added interpretation of SELECT Tag to generate dynamic listboxes
        from an arrary 
      - Fixed a problem with dynamic lists
      - Fixed some warnings displayed by the Sun Pro C Compiler (Thanks to Dan Peterson)
      - Fixed an error message about missing IO::Handle 
      - Changed all // comments to /* */ to be more compatible with compilers other
        than the gnu-c compiler
      - Inserted a missing return in oputc which caused a SIGSEV on Solaris  (Thanks 
        to Dan Peterson) 
      - Checked return code of Logfile open, to prevent a SIGSEV when Embperl cannot
        write to the logfile (it now writes an error message in server's errorlog)  
        (Thanks to Dan Peterson)
      - Errors will also be logged to the server's error log (written to stderr)
            
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.17.html">PREV (0.16-beta  29 Aug 97)</a>]&nbsp;&nbsp; [<a href="Changes.pod.19.html">NEXT (0.14-beta 30 Juni 1997  )</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.19.html
  
  Index: Changes.pod.19.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.19</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_14_beta_30_Juni_1997">0.14-beta 30 Juni 1997  </a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.18.html">PREV (0.15-beta  11 July 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.20.html">NEXT (0.13-beta   April 26 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - adding 8192 to EMBPERL_DEBUG and setting EMBPERL_VIRTLOG will add a link
        to Embperl output, so you can directly view the right part of the logfile
        with your browser
      - Added the LOG filehandle to print to the Embperl logfile
      - Added the possibility to handle multiple form fields with same name
      - chars which are a result of a Perl expression will not be escaped to HTML if
        they are prefixed with a backslash
      - Added support for scanning the parameters of input tags for Perl code i.e.
        [- -] and [+ +] substitution takes place
      - Replaced carriage return in Perl expression with space to avoid Perl 5.004 error
        about carriage return
      - added $req_rec to access the Apache server api when running under mod_perl
  </PRE>
  <P>
  <PRE>    - Fixed a bug in Safe namespace handling which was always causing ERR: 17 Namespace unknown
      - Fixed a bug which caused dynamic tables to end, if a 'if', 'while' and etc. was included 
      - Fixed a bug that caused [$cmd$] to be executed only in the first iteration of a 'while' 
        or a table
      - Fixed some bugs in input tag interpretation
      - Fixed a bug which occurred when Embperl encountered an input tag with value=&quot;&quot; and %ffld=&quot;&quot;
      - Fixed a bug in embpexec.pl that caused the options to be ignored when running offline
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.18.html">PREV (0.15-beta  11 July 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.20.html">NEXT (0.13-beta   April 26 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.2.html
  
  Index: Changes.pod.2.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.2</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="1_1b2_27_Jun_98">1.1b2 27 Jun 98</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.1.html">PREV (1.1.0 28 Jul 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.3.html">NEXT (1.1b1 14 Jun 98)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Added an additional note for input- and output- escaping
       which is described in &quot;Inside Embperl&quot; section.
       It's very important to understand this if you have any
       problems with HTML tags or filehandles in your Perl code.
     - Embperl will recognize Apache::exit. If called inside an
       Embperl page or in a module called from an Embperl page,
       the processing of the document is immediately aborted. 
       Everything processed so far is output/sent to the browser.
       Based on a patch from Steve Willer.
     - When running under mod_perl, 'exit' is an alias for Apache::exit
       in every document.
     - Enhanced the format of the Errorpage. Thanks for the patch
       from Steve Willer
     - Added a [$ foreach $] and a [$ do $] ... [$ until $]
       metacommand
  </PRE>
  <P>
  <PRE>   - Now multiple checkboxes with the same name will be set
       correctly, to the values posted to the document. Spotted
       by Todd Eigenshink and Nathan Krislock.
     - [+ local $escmode = 0 .... +] works now. The first setting
       of $escmode in a [+ ... +] block will now applied to the
       whole block. You cannot change $escmode inside a [+ ... +]
       block. Spotted by Chris Thormann. 
     - Fixed the return path setting in MailFormFields
     - ProxyInput now passes http headers, so authentification
       will be passed thru.
     - Removed the limit 2048 for the length of HTML tags when [+ ... +]
       are included. Now there is no limit anymore. Spotted by Doug Bagley
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.1.html">PREV (1.1.0 28 Jul 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.3.html">NEXT (1.1b1 14 Jun 98)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.20.html
  
  Index: Changes.pod.20.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.20</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_13_beta_April_26_1997">0.13-beta   April 26 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.19.html">PREV (0.14-beta 30 Juni 1997  )</a>]&nbsp;&nbsp; [<a href="Changes.pod.21.html">NEXT (0.12-beta not publicly released)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Moved EPENTRY (embperl_init) down to avoid crashing when compiled with
        -DEPDEBUGALL
      - Added #undefs for stdio function to compile with Perl &gt; 5.003
        NOTE: This is a quick hack, and will be changed to use PerlIO in
        one of the next releases, so we can tie stdout of Embperl
      - Added pids (to distinguish between muliplite requests) and time to
        logfile output
      - Made many functions static and names of externals more unique to
        avoid conflicts of symbolnames with other modules
      - If file not found return status 404 instead of 500
      - Add Apache::Embperl so the module shows at CPAN also under 
        module/by-module/Apache/ as suggested by Doug MacEachern
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.19.html">PREV (0.14-beta 30 Juni 1997  )</a>]&nbsp;&nbsp; [<a href="Changes.pod.21.html">NEXT (0.12-beta not publicly released)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.21.html
  
  Index: Changes.pod.21.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.21</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_12_beta_not_publicly_released">0.12-beta not publicly released</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.20.html">PREV (0.13-beta   April 26 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.22.html">NEXT (0.11-beta      March 25 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - The mask has been removed from namespace option so it can be used
        with safe.pm &gt; 2
      - Embperl works with -T / PerlTaintCheck on
      - Add function MailFormTo to send form contents via email
      - The dbgSource option displays only one line for better overview
      - Fixed a bug which caused the Perl operator '&lt;' to be interpreted 
        as an HTML tag in tables or while loops after the first iteration
      - Added ffld array for mod_perl mode to get the order of form fields
      - Removed vsnprintf since its not available on all platforms
      - Corrected handling of empty dynamic tables
      - Fixed a bug which was causing a Segmentaion Fault when the first 
        table is empty
      - Added a script for make test
      - Fixed Error with nested if
      - Log compilation errors of embedded Perl code
      - Avoid some warnings in Embperl.pm
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.20.html">PREV (0.13-beta   April 26 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.22.html">NEXT (0.11-beta      March 25 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.22.html
  
  Index: Changes.pod.22.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.22</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_11_beta_March_25_1997">0.11-beta      March 25 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.21.html">PREV (0.12-beta not publicly released)</a>]&nbsp;&nbsp; [<a href="Changes.pod.23.html">NEXT (0.10b-beta	Jan 23 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - Name changed from Embperl to HTML::Embperl!!!!!!!!
      - FORM &amp; ENV debug output now available in all modes
      - Output from [+  +] and INPUT fields are escaped
        (e.g. &lt; is send as &amp;lt; )
      - Added two-dimensional tables
      - Fixed a bug which caused an endless loop when using a \ 
      - Fixed escaping of special HTML chars above ascii code 128
      - Added support for list tags (dir, menu, ol, ul, dl)
      - Added support for textarea tag
      - Fixed some errors
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.21.html">PREV (0.12-beta not publicly released)</a>]&nbsp;&nbsp; [<a href="Changes.pod.23.html">NEXT (0.10b-beta	Jan 23 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.23.html
  
  Index: Changes.pod.23.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.23</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_10b_beta_Jan_23_1997">0.10b-beta	Jan 23 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.22.html">PREV (0.11-beta      March 25 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.24.html">NEXT (0.10beta 	Jan 18 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - fixed some errors
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.22.html">PREV (0.11-beta      March 25 1997)</a>]&nbsp;&nbsp; [<a href="Changes.pod.24.html">NEXT (0.10beta 	Jan 18 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.24.html
  
  Index: Changes.pod.24.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.24</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_10beta_Jan_18_1997">0.10beta 	Jan 18 1997</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.23.html">PREV (0.10b-beta	Jan 23 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>    - first public beta release
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.23.html">PREV (0.10b-beta	Jan 23 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.3.html
  
  Index: Changes.pod.3.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.3</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="1_1b1_14_Jun_98">1.1b1 14 Jun 98</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.2.html">PREV (1.1b2 27 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.4.html">NEXT (1.0.0  12 Jun 98)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Now you can set custom input and/or output functions via
       EMBPERL_INPUT_FUNC and EMBPERL_OUTPUT_FUNC. This can be
       used to chain modules together or to get the input from
       (or put the output to) non-standard locations.
     - Added a function ProxyInput which can be used to fetch 
       the input from another URL instead of the disk. One possible
       usage for this is to let mod_include parse the document first 
       and then let Embperl process it. Suggested by Steffen Geschke.
     - Added a function LogOutput, which will write every generated
       document to a unique file in addition to sending it to the
       browser. Suggested by Dan Peterson.
     - EMBPERL_FILESMATCH allows you to select which files in
       a Location should be processed by Embperl. The rest are handled
       by the Apache default handler. This allows you to have 
       Embperl and non-Embperl documents (like gifs etc.) in
       the same directory.
  </PRE>
  <P>
  <PRE>   - Logfile was displayed at the wrong position when requested via the
       browser the first time after the httpd was started.
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.2.html">PREV (1.1b2 27 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.4.html">NEXT (1.0.0  12 Jun 98)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.4.html
  
  Index: Changes.pod.4.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.4</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="1_0_0_12_Jun_98">1.0.0  12 Jun 98</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.3.html">PREV (1.1b1 14 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.5.html">NEXT (0.28-beta 19 May 1998)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Make test runs with Apache 1.3.0, spotted by Eric Cholet
     - Added a definition for MAX_PATH, which is not there on SunOS 4.1.4.
       Spotted by Dan Peterson
     - Fixed a bug that causes Makefile.PL to interpret MakeMaker parameters
       spotted by Jason Bodnar
     - Fixed a bug that caused EMBPERL_PACKAGE not to be recognized.
     - Fixed a bug that caused optDisableFormData not to be recognized for
       multipart formdata.
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.3.html">PREV (1.1b1 14 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.5.html">NEXT (0.28-beta 19 May 1998)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.5.html
  
  Index: Changes.pod.5.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.5</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_28_beta_19_May_1998">0.28-beta 19 May 1998</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.4.html">PREV (1.0.0  12 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.6.html">NEXT (0.27-beta not available)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - I have added a chapter &quot;Inside Embperl&quot; to the docs, I hope this
       will make it clearer how escaping and unescaping works and how you
       can get desired results. Highly recommended! (Thanks for spell- and 
       grammar-checking to Todd Eigenshink)
     - make test now runs under win32 (You need to install LWP and libwin32)
       IMPORTANT: You need a mod_perl version &gt; 1.11 or you get a deadlock.
     - Compiles with apache_1.3b6
     - Added support for Stronghold and Apache_SSL to Makefile.PL and test.pl
     - Changed dbgEarlyHttpHeader to optEarlyHttpHeader because it's not a
       debugging option. dbgEarlyHttpHeader still persists, but will be removed
       in one of the following versions
     - Embperl does not change the current working directory when optDisableChdir
       is set, this saves some milliseconds per request, also the cwd is moved
       to the c code, so it runs faster then Cwd::fastwd.
       Thanks to Doug Bagley for the profile which has shown how much time 
       Cwd::fastcwd consumes
     - You can set optDisableHtmlScan in EMBPERL_OPTIONS. If set, Embperl only
       recongizes [+/-/$/! ... !/$/-/+], but will not do anything with HTML tags,
       as suggested by Randy Harmon.
     - optDisableInputScan, optDisableTableScan and optDisableMetaScan can be
       used to disable only some of the HTML tag processing
     - You can set optDisableFormData in EMBPERL_OPTIONS. If set, Embperl
       will not setup the %fdat and @ffld, as suggested by Doug Bagley
     - If you use Execute, the explicit call to Init/Term isn't needed anymore,
       because Embperl performs the Init automatically when it is loaded. The 
       Init function can still be used to change the path of logfile. Suggested
       by Honza Jirousek
     - All options and debugging flags can now be read/set at runtime. For
       example $optRawInput = 1 sets the optRawInputFlag. Some of the options
       are read-only, because they must be known before the request.   
     - Added more tests  
     - Embperl discards all errors which occur in an expression after the end
       of a dynamic table, and which are only evaluated to detect the table end and
       never displayed. This allows usage of object methods in dynamic tables,
       where the table end is caused by an undefined object. (see
       test/html/object.htm for an example). Spotted by Jason Bodnar.
     - Printing to filehandle OUT has the same effect as using [+ .. +] 
       (including html-escaping)
     - Setting optRedirectStdout causes Embperl to tie STDOUT to the Embperl
       output stream (same as print OUT ...), suggested by Jason Bodar
     - Setting optAllFormData will make empty formfields occur in %fdat and @ffld
       with an empty string value, suggested by Dan Peterson
  </PRE>
  <P>
  <PRE>   - Embperl now handles SELECT MULTIPLE correct. All OPTIONs which are
       posted to the document will now be selected by Embperl, spotted by
       Todd Eigenschink
     - Fixed a bug that caused a '&gt;' inside a [$/! ... !/$] block to be 
       interpreted as the end of a HTML tag, spotted by Todd Eigenschink.
     - Fixed a bug which caused the SELECT/OPTIONS tag to not insert their
       values in %idat and therefore made [$hidden$] work incorrectly, spotted by
       Dave Paris [aka Spider]
     - Fixed a bug that caused the INPUT CHECKBOX tag to not insert its  
       value in %idat when the value wasn't in %fdat and therefore made [$hidden$] 
       work incorrectly.
     - Fixed a problem that caused magical variables to be handled as if they
       were undefined, which caused dynamic tables to end, sometimes prematurely.
     - Closing HTML tags will be correctly removed form Perl source again
       (when optRawInput is not set)
     - &amp;nbsp; will be translated to space (0x20) instead of 0xf0
     - When EMBPERL_DEBUG is set 0, only errors and warnings will be written to
       the logfile
     - MailFormTo will generate the correct TO header and insert a Return-Path
       from the posted e-mail address
     - Changed detection of mod_perl to $ENV{MOD_PERL}. This makes sure that
       it will work correctly, even if Apache.pm isn't loaded.
     - Re-entered the optDisableEmbperlErrorPage, which was lost in one of the last
       releases, spotted by Doug Bagley.
     - The content_length of the Apache request_rec will only be set when a http
       header is sent.
     - If, Elsif and While metacommands now use SvTRUE instead of a != 0 to test the
       evaluated expression, so they now behave like the Perl ones do. Spotted by Jason 
       Bondar
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.4.html">PREV (1.0.0  12 Jun 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.6.html">NEXT (0.27-beta not available)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.6.html
  
  Index: Changes.pod.6.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.6</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_27_beta_not_available">0.27-beta not available</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.5.html">PREV (0.28-beta 19 May 1998)</a>]&nbsp;&nbsp; [<a href="Changes.pod.7.html">NEXT (0.26-beta 16 Mar 98)</a>]&nbsp;&nbsp; <br><hr>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.5.html">PREV (0.28-beta 19 May 1998)</a>]&nbsp;&nbsp; [<a href="Changes.pod.7.html">NEXT (0.26-beta 16 Mar 98)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.7.html
  
  Index: Changes.pod.7.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.7</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_26_beta_16_Mar_98">0.26-beta 16 Mar 98</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.6.html">PREV (0.27-beta not available)</a>]&nbsp;&nbsp; [<a href="Changes.pod.8.html">NEXT (0.25-beta 17 Feb 1998)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Adapt include pass to compile with apache_1.3b5
     - Applied patch from Dan Walters to make Embperl compile with 
       apache_1.3b3 and mod_perl on Win 32
     - Changed the order of included c headers and undef some macros 
       inbetween (copied from mod_perl.c) to compile with Apache on Win 32
     - Embperl works with apache_1.3b5 on Win NT ('make test' does not yet)
       (You need the Apache source and must compile Perl with the vc++)
  </PRE>
  <P>
  <PRE>   - Added the 'param' parameter to the 'Execute' function to pass parameters
       from and to the Embperl document.
     - Added the 'fdat' and 'ffld' parameter to the 'Execute' function to
       setup %fdat and @ffld   
          
     - Fixed a problem which displayed tables a second time after the end of 
       the document, if dbgEarly HttpHeaders was on, thanks to Ask Bjorn Hansen
       for spotting this.
     - Fixed the return values of CheckFile, which was not correct after a change
       from 0.24 to 0.25. Thanks to Todd Eigenschrink for spotting this.
     - Fixed an error which was causing Embperl to crash on an HTML input tag without
       the 'type' parameter. Thanks to Todd Eigenschrink for the hint.
     - Fixed a problem that caused Embperl to not recognize errors correctly 
       when reading the sourcefile
       
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.6.html">PREV (0.27-beta not available)</a>]&nbsp;&nbsp; [<a href="Changes.pod.8.html">NEXT (0.25-beta 17 Feb 1998)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.8.html
  
  Index: Changes.pod.8.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.8</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_25_beta_17_Feb_1998">0.25-beta 17 Feb 1998</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.7.html">PREV (0.26-beta 16 Mar 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.9.html">NEXT (0.24-beta 13 Jan 1998 )</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Included the &quot;translation&quot; of the Embperl POD to a human-readable
       form done by Todd Eigenschink
     - Started a FAQ file from the questions I answered by e-mail
     - Added the function Execute, which can be called from Perl programs
       (or Apache::Registry scripts), and can take input from (and/or
       output to) memory, as suggested by Doug Bagley and Randy Harmon
       (Look at test/html/registry/Execute.htm for an example)
     - Changed the source so that it will compile on aix, spotted by
       Patrick McAuliffe 
     - Access sys_errlist via perl macro Strerror to avoid errors with
       redeclaration, thanks for spotting this to Honza Jirousek
     - Changed the tab size from 4 to 8 in my editor to be compatible with
       Unix standard
     - Added warning if dbgLogLink is set and EMBPERL_VIRTLOG is not
     - Changed the delimiter of metacommand from space to any non-alpha char
       to allow writing [$while(a==b)$] as suggested by Michael D. Dowling
     - Added config variable EMBPERL_ESCMODE to set inital values of $escmode
       as suggested by Todd Eigenschink
     - Added [! ... !]. Does just the same as [- ... -] but will only execute
       on the first request for that document. This can be used to do one-time
       initialization and to define subroutines.
     - Changed push_handlers to register_cleanup, so PERL_STACKED_HANDLERS and
       PERL_CLEANUP aren't necessary anymore, as suggested by Doug MacEachern
     - If it exists, the function CLEANUP of the processed document will be called
       before the variable cleanup, but after the connection to the client is closed
     - Added a closing &lt;/font&gt; in the logfile which is sent to the browser, otherwise 
       MS IE 4 can't handle it     
     - Changed Perl constants in Perl part from subroutines to &quot;real&quot; constants
     - Did some general rearranging of code
  </PRE>
  <P>
  <PRE>   - Fixed a memory leak which caused Embperl to lose one sv per Perl
       block when a document is reloaded
     - Fixed a bug which caused [+... +] within the Textarea tag to be ignored,
       spotted by Todd Eigenschink
     - Fixed a bug in sorting hidden fields
     - Fixed a wrong argument to MakeMaker, which was causing Embperl to not be able
       to build statically, spotted by Anatoli Belomestnov (and added a 
       description to the Faq on how to build a copy of Embperl which is statically-
       linked to mod_perl)
     - Fixed a problem which was causing the LOG filehandle to not be imported in 
       the documents package, this was causing everything printed to LOG to sort 
       of disappear 
     
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.7.html">PREV (0.26-beta 16 Mar 98)</a>]&nbsp;&nbsp; [<a href="Changes.pod.9.html">NEXT (0.24-beta 13 Jan 1998 )</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.9.html
  
  Index: Changes.pod.9.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.9</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="0_24_beta_13_Jan_1998">0.24-beta 13 Jan 1998 </a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.8.html">PREV (0.25-beta 17 Feb 1998)</a>]&nbsp;&nbsp; [<a href="Changes.pod.10.html">NEXT (0.23-beta 31 Dec 1997)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  <PRE>   - Added the option optRawInput which causes Embperl not to pre-process the
       source for a Perl expression (the only exception is that CR will be removed).
       This option should be set when you are writing your code with an ascii editor. 
       If you are using a WYSIWYG editor, which inserts unwanted HTML tags in your
       Perl expressions and escapes special characters automatically (i.e.
       &lt; will occur as &amp;lt; in the source), you should not set this option, and
       Embperl will automatically convert the HTML input back to the Perl
       expression you have written. (Thanks to Todd R. Eigenschink for a patch)
     - $0 is set to the filename of the HTML source
     - Change Current Working Directory to directory of HTML source
     - Warning messages are now also logged in logfile at the correct
       position, next to the source line
     - Perl error and warning messages contain the filename and correct
       linenumber of the HTML source
     - Sourcelines in logfile contain linenumbers
     - Output via [+ ... +] of undefined values at the end of a dynamic table
       (which must be there to end the table) do not generate a warning anymore  
       NOTE: If you use them in an expression (such as $a = $arr[$row] or simply
       inside &quot; &quot;, you will still get a warning)  
     - Open HTML source in binary mode on Win32 to avoid overhead of crlf -&gt; lf
       translation.
     - Use aplog_error for apache_1.3 to avoid senseless os errors written to
       httpd error log
  </PRE>
  <P>
  <PRE>   - Removed some uninitializied value messages when running with
       -w / PerlWarn on, spotted by Todd R. Eigenschink 
     - Fixed a bug which has caused nested 'while' loops to execute incorrectly 
       if the condition of the outer one is false 
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.8.html">PREV (0.25-beta 17 Feb 1998)</a>]&nbsp;&nbsp; [<a href="Changes.pod.10.html">NEXT (0.23-beta 31 Dec 1997)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Changes.pod.cont.html
  
  Index: Changes.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Changes.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-Changes.pod.cont">Revision History - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.1.html">NEXT (1.1.0 28 Jul 98)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>Changes.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="Changes.pod.1.html#1_1_0_28_Jul_98">1.1.0 28 Jul 98</A>
  	<LI><A HREF="Changes.pod.2.html#1_1b2_27_Jun_98">1.1b2 27 Jun 98</A>
  	<LI><A HREF="Changes.pod.3.html#1_1b1_14_Jun_98">1.1b1 14 Jun 98</A>
  	<LI><A HREF="Changes.pod.4.html#1_0_0_12_Jun_98">1.0.0  12 Jun 98</A>
  	<LI><A HREF="Changes.pod.5.html#0_28_beta_19_May_1998">0.28-beta 19 May 1998</A>
  	<LI><A HREF="Changes.pod.6.html#0_27_beta_not_available">0.27-beta not available</A>
  	<LI><A HREF="Changes.pod.7.html#0_26_beta_16_Mar_98">0.26-beta 16 Mar 98</A>
  	<LI><A HREF="Changes.pod.8.html#0_25_beta_17_Feb_1998">0.25-beta 17 Feb 1998</A>
  	<LI><A HREF="Changes.pod.9.html#0_24_beta_13_Jan_1998">0.24-beta 13 Jan 1998 </A>
  	<LI><A HREF="Changes.pod.10.html#0_23_beta_31_Dec_1997">0.23-beta 31 Dec 1997</A>
  	<LI><A HREF="Changes.pod.11.html#0_22_beta_28_Dec_1997">0.22-beta 28 Dec 1997</A>
  	<LI><A HREF="Changes.pod.12.html#0_21_beta_25_Dec_1997">0.21-beta 25 Dec 1997</A>
  	<LI><A HREF="Changes.pod.13.html#0_20_beta_15_Nov_97">0.20-beta 15 Nov 97</A>
  	<LI><A HREF="Changes.pod.14.html#0_19_beta_29_Oct_97">0.19-beta 29 Oct 97</A>
  	<LI><A HREF="Changes.pod.15.html#0_18_beta_25_Oct_97">0.18-beta 25 Oct 97</A>
  	<LI><A HREF="Changes.pod.16.html#0_17_beta_30_Aug_97">0.17-beta  30 Aug 97</A>
  	<LI><A HREF="Changes.pod.17.html#0_16_beta_29_Aug_97">0.16-beta  29 Aug 97</A>
  	<LI><A HREF="Changes.pod.18.html#0_15_beta_11_July_1997">0.15-beta  11 July 1997</A>
  	<LI><A HREF="Changes.pod.19.html#0_14_beta_30_Juni_1997">0.14-beta 30 Juni 1997  </A>
  	<LI><A HREF="Changes.pod.20.html#0_13_beta_April_26_1997">0.13-beta   April 26 1997</A>
  	<LI><A HREF="Changes.pod.21.html#0_12_beta_not_publicly_released">0.12-beta not publicly released</A>
  	<LI><A HREF="Changes.pod.22.html#0_11_beta_March_25_1997">0.11-beta      March 25 1997</A>
  	<LI><A HREF="Changes.pod.23.html#0_10b_beta_Jan_23_1997">0.10b-beta	Jan 23 1997</A>
  	<LI><A HREF="Changes.pod.24.html#0_10beta_Jan_18_1997">0.10beta 	Jan 18 1997</A>
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Changes.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Changes.pod.1.html">NEXT (1.1.0 28 Jul 98)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/Embperl.pod.1.html
  
  Index: Embperl.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Operating_Modes">Operating-Modes</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">PREV (Documentation - Content)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.2.html">NEXT (Runtime configuration)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.1.html#Offline">Offline</A>
  		<LI><A HREF="Embperl.pod.1.html#As_a_CGI_script">As a CGI script</A>
  		<LI><A HREF="Embperl.pod.1.html#From_mod_perl_Apache_httpd_">From mod_perl (Apache httpd)</A>
  		<LI><A HREF="Embperl.pod.1.html#By_calling_HTML_Embperl_Execut">By calling HTML::Embperl::Execute (\%param)</A>
  		<LI><A HREF="Embperl.pod.1.html#Helper_functions_for_Execute">Helper functions for Execute</A>
  		<LI><A HREF="Embperl.pod.1.html#EXAMPLES_for_Execute_">EXAMPLES for Execute:</A>
  	</UL>
  <hr>
  <P>
  Embperl can operate in one of four modes:
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Offline">Offline</A></H2>
  <P>
  Converts an HTML file with embedded Perl statements into a standard HTML
  file.
  
  <P>
  <STRONG>embpexec.pl [-o outputfile] [-l logfile] [-d debugflags] htmlfile
  [query_string]</STRONG>
  
  
  
  <P>
  <STRONG>embpexec.bat [-o outputfile] [-l logfile] [-d debugflags] htmlfile
  [query_string]</STRONG>
  
  
  
  <P>
  Use embpexec.pl on Unix systems and embpexec.bat on Win32 systems.
  
  <DL>
  <DT><STRONG><A NAME="item_htmlfile">htmlfile</A></STRONG><DD>
  <P>
  The full pathname of the HTML file which should be processed by Embperl.
  
  <DT><STRONG><A NAME="item_query_string">query_string</A></STRONG><DD>
  <P>
  Optional. Has the same meaning as the environment variable QUERY_STRING
  when invoked as a CGI script. That is, QUERY_STRING contains everything
  following the first ``?'' in a URL. &lt;query_string&gt; should be
  URL-encoded. The default is no query string.
  
  <DT><STRONG><A NAME="item__o">-o outputfile</A></STRONG><DD>
  <P>
  Optional. Gives the filename to which the output is written. The default is
  stdout.
  
  <DT><STRONG><A NAME="item__l">-l logfile</A></STRONG><DD>
  <P>
  Optional. Gives the filename of the logfile. The default is
  /tmp/embperl.log.
  
  <DT><STRONG><A NAME="item__d">-d debugflags</A></STRONG><DD>
  <P>
  Optional. Specifies the level of debugging (what is written to the log
  file). The default is nothing. See <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> for exact values.
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="As_a_CGI_script">As a CGI script</A></H2>
  <P>
  Instead of a file being sent directly by the web server, the document is
  processed by the CGI script and the result is sent to the client.
  
  <P>
  <STRONG>embpexec.pl</STRONG>
  
  
  
  <P>
  <STRONG>embpexec.bat</STRONG>
  
  
  
  <P>
  Use embpexec.pl on Unix systems and embpexec.bat on Win32 systems.
  
  <P>
  If <CODE>embpexec.pl/embpexec.bat</CODE> is invoked without any parameters and the environment variable <STRONG>PATH_TRANSLATED</STRONG> is set, it runs itself as a CGI script. This means that form data is taken
  either from the environment variable <STRONG>QUERY_STRING</STRONG> or from stdin, depending on whether or not <STRONG>CONTENT_LENGTH</STRONG> is set. (This will be set by the web server depending on whether the
  request method is GET or POST). Input is taken from the file pointed to by <STRONG>PATH_TRANSLATED</STRONG> and the output is send to stdout. The logfile is generated at its default
  location, which is configurable via the environment variable <STRONG>EMBPERL_LOG</STRONG>.
  
  <P>
  To use this mode you must copy <STRONG>embpexec.pl</STRONG> to your cgi-bin directory. You can invoke it with the URL <A
  HREF="http://www.domain.xyz/cgi-bin/embpexec.pl/url/of/your/document.">http://www.domain.xyz/cgi-bin/embpexec.pl/url/of/your/document.</A>
  
  
  <P>
  The /url/of/your/document will be passed to Embperl by the web server.
  Normal processing (aliasing, etc.) takes place before the URI makes it to
  PATH_TRANSLATED.
  
  <P>
  If you are running the Apache httpd, you can also define
  <STRONG>embpexec.pl</STRONG> as a handler for a specific file extention or directory.
  
  <P>
  Example of Apache <CODE>srm.conf</CODE>:
  
  <P>
  <PRE>    &lt;Directory /path/to/your/html/docs&gt;
      Action text/html /cgi-bin/embperl/embpexec.pl
      &lt;/Directory&gt;
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="From_mod_perl_Apache_httpd_">From mod_perl (Apache httpd)</A></H2>
  <P>
  This works like the CGI-Script, but with the advantage that the script is
  compiled only once at server startup, where other one-time actions (such as
  opening files and databases) can take place. This will drastically reduce
  response times for the request. To use this you must compile <CODE>Apache httpd</CODE> with <CODE>mod_perl</CODE> and add <CODE>HTML::Embperl</CODE>
  as the <CODE>PerlHandler</CODE>.
  
  <P>
  Example of Apache <CODE>srm.conf</CODE>:
  
  <P>
  <PRE>    SetEnv EMBPERL_DEBUG 2285
  </PRE>
  <P>
  <PRE>    Alias /embperl /path/to/embperl/eg
  </PRE>
  <P>
  <PRE>    &lt;Location /embperl/x&gt;
      SetHandler  perl-script
      PerlHandler HTML::Embperl
      Options     ExecCGI
      &lt;/Location&gt;
  </PRE>
  <P>
  Another possible setup (for Apache 1.3bX see below) is
  
  <P>
  <PRE>    SetEnv EMBPERL_DEBUG 2285
  </PRE>
  <P>
  <PRE>    &lt;Files *.epl&gt;
      SetHandler  perl-script
      PerlHandler HTML::Embperl
      Options     ExecCGI
      &lt;/files&gt;
  </PRE>
  <P>
  <PRE>    AddType text/html .epl
  </PRE>
  <P>
  Don't forget the <STRONG>AddType</STRONG>. In this setup, all files ending with .epl are processed by Embperl.
  
  <P>
  <CODE>NOTE:</CODE> Since &lt;Files&gt; does not work the same in Apache 1.3bX as it does in
  Apache 1.2.x, you need to use &lt;FilesMatch&gt; instead.
  
  <P>
  <PRE>    &lt;FilesMatch &quot;.*\.epl$&quot;&gt;
      SetHandler  perl-script
      PerlHandler HTML::Embperl
      Options     ExecCGI
      &lt;/FilesMatch&gt;
  </PRE>
  <P>
  See the section <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> (dbgLogLink and EMBPERL_VIRTLOG) to find out how you can configure Embperl
  so you can view the log file with your browser!
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="By_calling_HTML_Embperl_Execut">By calling HTML::Embperl::Execute (\%param)</A></H2>
  <P>
  Execute takes a hash reference as its argument. This gives it the chance to
  vary the parameters according to the job that should be done.
  
  <P>
  (See <STRONG>eg/x/Excute.pl</STRONG> for more detailed examples)
  
  <P>
  Possible items are:
  
  <DL>
  <DT><STRONG><A NAME="item_inputfile">inputfile</A></STRONG><DD>
  <P>
  The file which should be used as source. If <STRONG>input</STRONG> is also specified, this parameter should be given a unique name to identify
  the source. Every time Embperl sees the same text in <STRONG>inputfile</STRONG>, it assumes that you compiled the same source - that means that Embperl
  uses the same package name as in your last call, and only recompiles the
  code if <STRONG>mtime</STRONG> has changed or is undefined.
  
  <DT><STRONG><A NAME="item_input">input</A></STRONG><DD>
  <P>
  Reference to a string which contains the source. <STRONG>inputfile</STRONG> must also be specified to give a name for the source. The name can be any
  text.
  
  <DT><STRONG><A NAME="item_mtime">mtime</A></STRONG><DD>
  <P>
  Last modification time of member <STRONG>input</STRONG>. If undef the code passed by input is always recompiled, else the code is
  only recompiled if mtime changes.
  
  <DT><STRONG><A NAME="item_outputfile">outputfile</A></STRONG><DD>
  <P>
  File to which the output should be written. If neither outputfile nor
  output is specified, ouput is written to stdout.
  
  <DT><STRONG><A NAME="item_output">output</A></STRONG><DD>
  <P>
  Reference to a scalar where the output should be written to.
  
  <DT><STRONG><A NAME="item_req_rec">req_rec</A></STRONG><DD>
  <P>
  If used under mod_perl, you should set the req_rec parameter to the Apache
  request record object provided by mod_perl.
  
  <DT><STRONG><A NAME="item_cleanup">cleanup</A></STRONG><DD>
  <P>
  This value specifies if and when the cleanup of the package should be
  executed. (See <A HREF="Embperl.pod.4.html#Variable_scope_and_cleanup">Variable scope and cleanup</A> below for more information on cleanup)
  
  <DL>
  <DT><STRONG>cleanup = -1</STRONG><DD>
  <P>
  Never cleanup the variables
  
  <DT><STRONG>cleanup = 0 or not specified</STRONG><DD>
  <P>
  If running under mod_perl, cleanup is delayed until the connection to the
  client is closed, so it does not lengthen the response time to the client.
  If the Execute function is called more the once before the end of the
  request, all cleanups take place after the end of the request and not
  between calls to Execute.
  
  <P>
  If running as a CGI or offline, cleanup takes place immediately.
  
  <DT><STRONG>cleanup = 1</STRONG><DD>
  <P>
  Immediate cleanup
  
  </DL>
  <DT><STRONG><A NAME="item_param">param</A></STRONG><DD>
  <P>
  Can be used to pass parameters to the Embperl document and back. Must
  contain a reference to an array.
  
  <P>
  <PRE> Example:
  </PRE>
  <P>
  <PRE>    HTML::Embperl::Execute(..., param =&gt; [1, 2, 3]) ;
      HTML::Embperl::Execute(..., param =&gt; \@parameters) ;
  </PRE>
  <P>
  The array <A HREF=".html#item__param">@param</A> in the Embperl document is
  setup as an alias to the array. See eg/x/Excute.pl for a more detailed
  example.
  
  <DT><STRONG><A NAME="item_ffld">ffld and fdat</A></STRONG><DD>
  <P>
  Could be used to setup the two Embperl predefined variables.
  
  <DT><STRONG><A NAME="item_options">options</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_OPTIONS">EMBPERL_OPTIONS</A> (see below), except for cleanup.
  
  <DT><STRONG><A NAME="item_debug">debug</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> (see below).
  
  <DT><STRONG><A NAME="item_escmode">escmode</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_ESCMODE">EMBPERL_ESCMODE</A> (see below).
  
  <DT><STRONG><A NAME="item_package">package</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_PACKAGE">EMBPERL_PACKAGE</A> (see below).
  
  <DT><STRONG><A NAME="item_virtlog">virtlog</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_VIRTLOG">EMBPERL_VIRTLOG</A> (see below). If <STRONG>virtlog</STRONG> is equal to <STRONG>uri</STRONG> the logfile is sent.
  
  <DT><STRONG><A NAME="item_uri">uri</A></STRONG><DD>
  <P>
  The URI of the request. Only needed for the virtlog feature.
  
  <DT><STRONG><A NAME="item_compartment">compartment</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_COMPARTMENT">EMBPERL_COMPARTMENT</A> (see below).
  
  <P>
  <STRONG>NOTE:</STRONG> You should set the <STRONG>optDisableFormData</STRONG> if you have already read the form data from stdin while in a POST request.
  Otherwise Execute will hang and try to read the data a second time.
  
  <DT><STRONG><A NAME="item_input_func">input_func</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_INPUT_FUNC">EMBPERL_INPUT_FUNC</A> (see below).
  
  <DT><STRONG><A NAME="item_output_func">output_func</A></STRONG><DD>
  <P>
  Same as <A HREF="Embperl.pod.2.html#EMBPERL_OUTPUT_FUNC">EMBPERL_OUTPUT_FUNC</A> (see below).
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Helper_functions_for_Execute">Helper functions for Execute</A></H2>
  <DL>
  <DT><STRONG><A NAME="item_HTML">HTML::Embperl::Init ($Logfile, $DebugDefault)</A></STRONG><DD>
  <P>
  This function can be used to setup the logfile path and (optional) a
  default value for the debugflags, which will be used in further calls to
  Execute. There will always be only one logfile, but you can use <STRONG>Init</STRONG>
  to change it at any time.
  
  <P>
  <STRONG>NOTE:</STRONG> You do not need to call Init in version &gt;= 0.27. The initialization of
  Embperl takes place automatically when it is loaded.
  
  <DT><STRONG><A NAME="item_HTML">HTML::Embperl::ScanEnvironement (\%params)</A></STRONG><DD>
  <P>
  Scans the <STRONG>%ENV</STRONG> and setups <STRONG>%params</STRONG> for use by <STRONG>Execute</STRONG>. All Embperl runtime configuration options are recognized, except
  EMBPERL_LOG.
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EXAMPLES_for_Execute_">EXAMPLES for Execute:</A></H2>
  <P>
  <PRE> # Get source from /path/to/your.html and
   # write output to /path/to/output'
  </PRE>
  <P>
  <PRE> HTML::Embperl::Execute ({ inputfile  =&gt; '/path/to/your.html',
                             outputfile =&gt; '/path/to/output'}) ;
  </PRE>
  <P>
  <PRE> # Get source from scalar and write output to stdout
   # Don't forget to modify mtime if $src changes
  </PRE>
  <P>
  <PRE> $src = '&lt;html&gt;&lt;head&gt;&lt;title&gt;Page [+ $no +]&lt;/title&gt;&lt;/head&gt;' ;
  </PRE>
  <P>
  <PRE> HTML::Embperl::Execute ({ inputfile  =&gt; 'some name',
                             input      =&gt; \$src,
                             mtime      =&gt; 1 }) ;
  </PRE>
  <P>
  <PRE> # Get source from scalar and write output to another scalar
  </PRE>
  <P>
  <PRE> my $src = '&lt;html&gt;&lt;head&gt;&lt;title&gt;Page [+ $no +]&lt;/title&gt;&lt;/head&gt;' ;
   my $out ;
  </PRE>
  <P>
  <PRE> HTML::Embperl::Execute ({ inputfile  =&gt; 'another name',
                             input      =&gt; \$src,
                             mtime      =&gt; 1,
                             output     =&gt; \$out }) ;
  </PRE>
  <P>
  <PRE> print $out ;
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">PREV (Documentation - Content)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.2.html">NEXT (Runtime configuration)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.10.html
  
  Index: Embperl.pod.10.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.10</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Performance">Performance</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.9.html">PREV (Inside Embperl - How the embedded Perl code is actually processed)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.11.html">NEXT (Bugs)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  To get the best performace from Embperl, it is necessary to restrict
  logging to a minimum. You can drastically slow down Embperl if you enable
  all logging options. (This is why `make test' takes a while to run.) You
  should <STRONG>never</STRONG> enable <STRONG>dbgFlushOutput</STRONG>, <STRONG>dbgFlushLog</STRONG> or
  <STRONG>dbgCacheDisable</STRONG> in a production environment. More debugging options are useful for
  development where it doesn't matter if the request takes a little bit
  longer, but on a heavily-loaded server they should be disabled.
  
  <P>
  Also take a look at <STRONG>mod_perl_tuning.pod</STRONG> for general ideas about performance.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.9.html">PREV (Inside Embperl - How the embedded Perl code is actually processed)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.11.html">NEXT (Bugs)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.11.html
  
  Index: Embperl.pod.11.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.11</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Bugs">Bugs</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.10.html">PREV (Performance)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.12.html">NEXT (Compatibility)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  None known.
  
  <P>
  Under perl5.004 there are memory leaks. This is not an Embperl bug, but can
  cause your httpd to grow endlessly when running under mod_perl. Please
  upgrade to perl5.004_04 to fix this. You should also upgrade to a mod_perl
  version higher than 1.07_01 as soon as possible, because until 1.07_01
  there is a memory leak in Apache-&gt;push_handler.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.10.html">PREV (Performance)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.12.html">NEXT (Compatibility)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.12.html
  
  Index: Embperl.pod.12.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.12</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Compatibility">Compatibility</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.11.html">PREV (Bugs)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.13.html">NEXT (Support)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.12.html#on_Linux_2_x_with">on Linux 2.x with</A>
  		<LI><A HREF="Embperl.pod.12.html#on_Windows_NT_4_0_with">on Windows NT 4.0 with</A>
  		<LI><A HREF="Embperl.pod.12.html#on_Windows_95_with">on Windows 95 with</A>
  	</UL>
  <hr>
  <P>
  I have tested Embperl succesfully
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="on_Linux_2_x_with">on Linux 2.x with</A></H2>
  <DL>
  <DT><STRONG><A NAME="item_perl5">perl5.004_04</A></STRONG><DD>
  <DT><STRONG><A NAME="item_perl5">perl5.005_01</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.2.5</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.2.6</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.3b3</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.3b5</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.3b6</A></STRONG><DD>
  <DT><STRONG><A NAME="item_apache_ssl">apache_ssl (Ben SSL)</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Stronghold">Stronghold 2.2</A></STRONG><DD>
  </DL>
  <P>
  I know from other people that it works on many other UNIX systems
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="on_Windows_NT_4_0_with">on Windows NT 4.0 with</A></H2>
  <DL>
  <DT><STRONG>perl5.004_04</STRONG><DD>
  <DT><STRONG><A NAME="item_perl5">perl5.005</A></STRONG><DD>
  <DT><STRONG>apache_1.3b5</STRONG><DD>
  <DT><STRONG><A NAME="item_apache_1">apache_1.3.1</A></STRONG><DD>
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="on_Windows_95_with">on Windows 95 with</A></H2>
  <DL>
  <DT><STRONG><A NAME="item_perl5">perl5.004_02 (binary distribution)</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Offline">Offline mode</A></STRONG><DD>
  </DL>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.11.html">PREV (Bugs)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.13.html">NEXT (Support)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.13.html
  
  Index: Embperl.pod.13.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.13</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Support">Support</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.12.html">PREV (Compatibility)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.14.html">NEXT (References)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.13.html#Feedback_and_Bug_Reports">Feedback and Bug Reports</A>
  		<LI><A HREF="Embperl.pod.13.html#Commerical_Support">Commerical Support</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Feedback_and_Bug_Reports">Feedback and Bug Reports</A></H2>
  <P>
  Please let me know if you use or test this module. Bugs, questions,
  suggestions for things you would find useful, etc., are discussed on the
  mod_perl mailing list.
  
  <P>
  &gt;From the mod_perl README: The Apache/Perl mailing list (<A
  HREF="mailto:modperl@apache.org">modperl@apache.org</A>) is available for
  mod_perl users and developers to share ideas, solve problems and discuss
  things related to mod_perl and the Apache::* (and Embperl) modules. To
  subscribe to this list, send mail to <A
  HREF="mailto:majordomo@apache.org">majordomo@apache.org</A> with the string
  ``subscribe modperl'' in the body. 
  
  <P>
  There is a hypermail archive for this list available from: <A
  HREF="http://outside.organic.com/mail-archives/modperl/">http://outside.organic.com/mail-archives/modperl/</A>
  
  
  <P>
  There is an Epigone archive for the mod_perl mailing list at <A
  HREF="http://forum.swarthmore.edu/epigone/modperl">http://forum.swarthmore.edu/epigone/modperl</A>
  
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Commerical_Support">Commerical Support</A></H2>
  <P>
  You can get free support on the mod_perl mailing list (see above). If you
  need commercial support (with a guarantee for response time or a solution)
  for Embperl or want a web site where you can run your Embperl/mod_perl
  scripts without setting up your own web server, please send e-mail to <A
  HREF="mailto:info@ecos.de.">info@ecos.de.</A>
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.12.html">PREV (Compatibility)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.14.html">NEXT (References)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.14.html
  
  Index: Embperl.pod.14.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.14</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="References">References</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.13.html">PREV (Support)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.14.html#Information">Information</A>
  		<LI><A HREF="Embperl.pod.14.html#Download">Download</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Information">Information</A></H2>
  <P>
  <PRE> mod_perl               <A HREF="http://perl.apache.org/">http://perl.apache.org/</A>
   mod_perl FAQ           <A HREF="http://perl.apache.org/faq">http://perl.apache.org/faq</A>
   Embperl                <A HREF="http://perl.apache.org/embperl/">http://perl.apache.org/embperl/</A>
   DBIx::Recordset        <A HREF="ftp://ftp.dev.ecos.de/pub/perl/dbi">ftp://ftp.dev.ecos.de/pub/perl/dbi</A>
   apache web server      <A HREF="http://www.apache.org/">http://www.apache.org/</A>
   ben-ssl (free httpsd)  <A HREF="http://www.apache-ssl.org/">http://www.apache-ssl.org/</A>
   stronghold (commerical httpsd) <A HREF="http://www.c2.net/">http://www.c2.net/</A>
      europe              <A HREF="http://www.eu.c2.net/">http://www.eu.c2.net/</A>
   other Apache modules   <A HREF="http://perl.apache.org/src/apache-modlist.html">http://perl.apache.org/src/apache-modlist.html</A>
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Download">Download</A></H2>
  <P>
  <PRE> mod_perl               <A HREF="http://www.perl.com/CPAN/modules/by-module/Apache">http://www.perl.com/CPAN/modules/by-module/Apache</A>
   Embperl                <A HREF="ftp://ftp.dev.ecos.de/pub/perl/embperl">ftp://ftp.dev.ecos.de/pub/perl/embperl</A>
   DBIx::Recordset        <A HREF="ftp://ftp.dev.ecos.de/pub/perl/dbi">ftp://ftp.dev.ecos.de/pub/perl/dbi</A>
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.13.html">PREV (Support)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.2.html
  
  Index: Embperl.pod.2.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.2</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Runtime_configuration">Runtime configuration</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.1.html">PREV (Operating-Modes)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.3.html">NEXT (SYNTAX)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_FILESMATCH">EMBPERL_FILESMATCH</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_COMPARTMENT">EMBPERL_COMPARTMENT</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_ESCMODE">EMBPERL_ESCMODE</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_LOG">EMBPERL_LOG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_PACKAGE">EMBPERL_PACKAGE</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_VIRTLOG">EMBPERL_VIRTLOG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_OPTIONS">EMBPERL_OPTIONS</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_INPUT_FUNC">EMBPERL_INPUT_FUNC</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_OUTPUT_FUNC">EMBPERL_OUTPUT_FUNC</A>
  	</UL>
  <hr>
  <P>
  The runtime configuration is done by setting environment variables, either
  on the command line (when working offline) or in your web server's
  configuration file. Most HTTP servers understand
  
  <P>
  SetEnv &lt;var&gt; &lt;value&gt;
  
  <P>
  If you are using Apache and mod_perl you can use
  
  <P>
  PerlSetEnv &lt;var&gt; &lt;value&gt;
  
  <P>
  The advantage of PerlSetEnv over SetEnv is that it can be used on a per
  directory/virtual host basis.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_FILESMATCH">EMBPERL_FILESMATCH</A></H2>
  <P>
  If specified, only files which match the given <STRONG>perl regular expression</STRONG> will be processed by Embperl, all other files will be handled by the
  standard Apache handler. This can be useful if you have Embperl documents
  and non Embperl documents (e.g. gifs) cohabitating in the same directory.
  EMBPERL_FILESMATCH works only under mod_perl.
  
  <P>
  <PRE> Example: 
   # Only files which end with .htm will processed by Embperl
   PerlSetEnv EMBPERL_FILESMATCH \.htm$
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_COMPARTMENT">EMBPERL_COMPARTMENT</A></H2>
  <P>
  Gives the name of the compartment from which to take the opcode mask. (See
  the chapter about <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A> for more details.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_ESCMODE">EMBPERL_ESCMODE</A></H2>
  <P>
  Specifies the initial value for <A HREF="Embperl.pod.5.html#_escmode">$escmode</A> (see below).
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_LOG">EMBPERL_LOG</A></H2>
  <P>
  Gives the location of the log file. This will contain information about
  what Embperl is doing. How much information depends on the debug settings
  (see <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> below). The log output is intended to show what your embedded Perl code is
  doing and to help debug it. The default is
  <STRONG>/tmp/embperl.log</STRONG>.
  
  <P>
  <STRONG>NOTE:</STRONG> When running under mod_perl you need to use <STRONG>PerlSetEnv</STRONG> for setting the logfile path, and mod_perl &gt;= 1.07_03 if you load
  Embperl at server startup (with PerlScript or PerlModule).
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_PACKAGE">EMBPERL_PACKAGE</A></H2>
  <P>
  The name of the package where your code will be executed. By default,
  Embperl generates a unique package name for every file. This ensures that
  variables and functions from one file can not affect those from another
  file. (Any package's variables will still be accessible with explicit
  package names.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_VIRTLOG">EMBPERL_VIRTLOG</A></H2>
  <P>
  Gives a virtual location where you can access the Embperl logfile with a
  browser. This feature is disabled (default) if EMBPERL_VIRTLOG is not
  specified. See also <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> and dbgLogLink for an Example how to set it up in your srm.conf.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_OPTIONS">EMBPERL_OPTIONS</A></H2>
  <P>
  This bitmask specifies some options for the execution of Embperl:
  
  <DL>
  <DT><STRONG><A NAME="item_optDisableVarCleanup">optDisableVarCleanup = 1</A></STRONG><DD>
  <P>
  Disables the automatic cleanup of variables at the end of each request.
  
  <DT><STRONG><A NAME="item_optDisableEmbperlErrorPage">optDisableEmbperlErrorPage = 2</A></STRONG><DD>
  <P>
  Tells Embperl to not send its own errorpage in case of failure, instead
  giving the error back to the web server and let the web server handle it
  the standard way. Without this option, Embperl sends its own error page,
  showing all the errors which have occurred. If you have dbgLogLink enabled,
  every error will be a link to the corresponding location in the log file.
  
  <DT><STRONG><A NAME="item_optSafeNamespace">optSafeNamespace = 4</A></STRONG><DD>
  <P>
  Tells Embperl to execute the embedded code in a safe namespace so the code
  cannot access data or code in any other package. (See the chapter about <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A> below for more details.)
  
  <DT><STRONG><A NAME="item_optOpcodeMask">optOpcodeMask = 8</A></STRONG><DD>
  <P>
  Tells Embperl to apply an operator mask. This gives you the chance to
  disallow special (unsafe) opcodes. (See the Chapter about 
  <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A>
  below for more details.)
  
  <DT><STRONG><A NAME="item_optRawInput">optRawInput = 16</A></STRONG><DD>
  <P>
  Causes Embperl not to pre-process the source for a Perl expression. (The
  only exception is that carriage returns will be removed, as Perl does not
  like them.) This option should be set when you are writing your code with
  an ASCII editor.
  
  <P>
  If you are using a WYSIWYG editor which inserts unwanted HTML tags in your
  Perl expressions and escapes special charcaters automatically (e.g., `&lt;'
  appears as `&amp;lt;' in the source), you should not set this option.
  Embperl will automatically convert the HTML input back to the Perl
  expressions as you wrote them.
  
  <DT><STRONG><A NAME="item_optEarlyHttpHeader">optEarlyHttpHeader = 64</A></STRONG><DD>
  <P>
  Normally, HTTP headers are sent after a request is finished without error.
  This gives you the chance to set arbitrary HTTP headers within the page,
  and gives Embperl the chance to calculate the content length. Also Embperl
  watches out for errors and sends an errorpage instead of the document if
  something goes wrong. To do this, all the output is kept in memory until
  the whole request is processed, then the HTTP headers are sent, and then
  the document. This flag will cause the HTTP headers to be sent before the
  script is processed, and the script's output will be sent directly. 
  
  <DT><STRONG><A NAME="item_optDisableChdir">optDisableChdir = 128</A></STRONG><DD>
  <P>
  Without this option, Embperl changes the currect directory to the one where
  the script resides. This gives you the chance to use relative pathnames.
  Since directory-changing takes up some millisecs, you can disable it with
  this option if you don't need it.
  
  <DT><STRONG><A NAME="item_optDisableFormData">optDisableFormData = 256</A></STRONG><DD>
  <P>
  This option disables the setup of <CODE>%fdat</CODE> and @ffld. Embperl
  will not do anything with the posted form data.
  
  <DT><STRONG><A NAME="item_optDisableHtmlScan">optDisableHtmlScan = 512</A></STRONG><DD>
  <P>
  When set, this option disables the scanning of <STRONG>all</STRONG> html-tags. Embperl will only look for [+/-/!/$ ... $/!/-/+]. This will
  disable dynamic tables, processing of the input data and so on.
  
  <DT><STRONG><A NAME="item_optDisableInputScan">optDisableInputScan = 1024</A></STRONG><DD>
  <P>
  Disables processing of all input-related tags.
  (&lt;INPUT&gt;&lt;TEXTAREA&gt;&lt;OPTION&gt;)
  
  <DT><STRONG><A NAME="item_optDisableTableScan">optDisableTableScan = 2048</A></STRONG><DD>
  <P>
  Disables processing of all table-related tags.
  (&lt;TABLE&gt;&lt;TH&gt;&lt;TR&gt;&lt;TD&gt;&lt;MENU&gt;&lt;OL&gt;&lt;SELECT&gt;&lt;UL&gt;)
  
  
  <DT><STRONG><A NAME="item_optDisableMetaScan">optDisableMetaScan = 4096</A></STRONG><DD>
  <P>
  Disables processing of all meta tags. (&lt;META HTTP-EQUIV&gt;)
  
  <DT><STRONG><A NAME="item_optAllFormData">optAllFormData = 8192</A></STRONG><DD>
  <P>
  This option will cause Embperl to insert all formfields in
  <CODE>%fdat</CODE> and @ffld, even if they are empty. Empty formfields will
  be inserted with an empty string. Without this option empty formfields will
  not be insert in <CODE>%fdat</CODE> and @ffld.
  
  <DT><STRONG><A NAME="item_optRedirectStdout">optRedirectStdout = 16384</A></STRONG><DD>
  <P>
  Redirects STDOUT to the Embperl output stream before every request and
  resets it afterwards. If set, you can use a normal Perl <STRONG>print</STRONG> inside any Perl block to output data. Without this option you can only
  output data by using the [+ ... +] block, or printing to the filehandle <STRONG>OUT</STRONG>.
  
  <DT><STRONG><A NAME="item_optUndefToEmptyValue">optUndefToEmptyValue = 32768</A></STRONG><DD>
  <P>
  Normally if there is no value in <CODE>%fdat</CODE> for a specific input
  field, Embperl will leave it untouched. When this option is set, Embperl
  will handle the field as if an empty string was stored in
  <CODE>%fdat</CODE> for the field.
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_DEBUG">EMBPERL_DEBUG</A></H2>
  <P>
  This is a bitmask which specifies what should be written to the log. The
  following values are defined:
  
  <DL>
  <DT><STRONG><A NAME="item_dbgStd">dbgStd = 1</A></STRONG><DD>
  <P>
  Show minimum information.
  
  <DT><STRONG><A NAME="item_dbgMem">dbgMem = 2</A></STRONG><DD>
  <P>
  Show memory and scalar value allocation.
  
  <DT><STRONG><A NAME="item_dbgEval">dbgEval = 4</A></STRONG><DD>
  <P>
  Show arguments to and results of evals.
  
  <DT><STRONG><A NAME="item_dbgCmd">dbgCmd = 8</A></STRONG><DD>
  <P>
  Show metacommands and HTML tags which are processed.
  
  <DT><STRONG><A NAME="item_dbgEnv">dbgEnv = 16,</A></STRONG><DD>
  <P>
  List every request's environment variables.
  
  <DT><STRONG><A NAME="item_dbgForm">dbgForm = 32</A></STRONG><DD>
  <P>
  Lists posted form data.
  
  <DT><STRONG><A NAME="item_dbgTab">dbgTab = 64</A></STRONG><DD>
  <P>
  Show processing of dynamic tables.
  
  <DT><STRONG><A NAME="item_dbgInput">dbgInput = 128</A></STRONG><DD>
  <P>
  Show processing of HTML input tags.
  
  <DT><STRONG><A NAME="item_dbgFlushOutput">dbgFlushOutput = 256</A></STRONG><DD>
  <P>
  Flush Embperl's output after every write. This should only be set to help
  debug Embperl crashes, as it drastically slows down Embperl's operation.
  
  <DT><STRONG><A NAME="item_dbgFlushLog">dbgFlushLog = 512</A></STRONG><DD>
  <P>
  Flush Embperl's logfile output after every write. This should only be set
  to help debug Embperl crashes, as it drastically slows down Embperl's
  operation.
  
  <DT><STRONG><A NAME="item_dbgAllCmds">dbgAllCmds  = 1024</A></STRONG><DD>
  <P>
  Logs all commands and HTML tags, whether or not they are really excuted or
  not. (It logs a `+' or `-' to tell you if they are executed.)
  
  <DT><STRONG><A NAME="item_dbgSource">dbgSource = 2048</A></STRONG><DD>
  <P>
  Logs the next piece of the HTML source to be processed. (NOTE: This
  generates a lot of output!)
  
  <DT><STRONG><A NAME="item_dbgFunc">dbgFunc = 4096</A></STRONG><DD>
  <P>
  This is only anvailable when Embperl is compiled with -DEPDEBUGALL, and is
  normally only used for debugging Embperl itself. Records all function
  entries to the logfile.
  
  <DT><STRONG><A NAME="item_dbgLogLink">dbgLogLink = 8192</A></STRONG><DD>
  <P>
  Inserts a link at the top of each page which can be used to view the log
  for the current HTML file. See also <A HREF="Embperl.pod.2.html#EMBPERL_VIRTLOG">EMBPERL_VIRTLOG</A>.
  
  <P>
  Example:
  
  <P>
  <PRE>    SetEnv EMBPERL_DEBUG 10477
      SetEnv EMBPERL_VIRTLOG /embperl/log
  </PRE>
  <P>
  <PRE>    &lt;Location /embperl/log&gt;
      SetHandler perl-script
      PerlHandler HTML::Embperl
      Options ExecCGI
      &lt;/Location&gt;
  </PRE>
  <DT><STRONG><A NAME="item_dbgDefEval">dbgDefEval = 16384</A></STRONG><DD>
  <P>
  Shows every time new Perl code is compiled.
  
  <DT><STRONG><A NAME="item_dbgCacheDisable">dbgCacheDisable = 32768</A></STRONG><DD>
  <P>
  Disables the use of the p-code cache. All Perl code is recompiled every
  time. (This should not be used in normal operation as it slows down Embperl
  dramatically.) This option is only here for debugging Embperl's cache
  handling. There is no guarantee that Embperl behaves the same with and
  without cache (actually is does not!)
  
  <DT><STRONG><A NAME="item_dbgHeadersIn">dbgHeadersIn = 262144</A></STRONG><DD>
  <P>
  Log all HTTP headers which are sent from the browser.
  
  <DT><STRONG><A NAME="item_dbgShowCleanup">dbgShowCleanup = 524288</A></STRONG><DD>
  <P>
  Show every variable which is undef'd at the end of the request. For scalar
  variables, the value before undef'ing is logged.
  
  </DL>
  <P>
  A good value to start is <CODE>2285</CODE> or <CODE>10477</CODE> if you want to view the logfile with your browser. (Don't forget to set
  EMBPERL_VIRTLOG.) If Embperl crashes, add <CODE>512</CODE> so the logfile is flushed after every line is written and you can see where
  Embperl is when it crashes.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_INPUT_FUNC">EMBPERL_INPUT_FUNC</A></H2>
  <P>
  This directive gives you the possiblity to specify a non-standard way of
  fetching input. Normally, Embperl reads its input (source) from a file (or
  gets it from a scalar if you use <CODE>Execute</CODE>). Here, you can give the name of a Perl function which is called instead
  of reading the input from a file. The function must look like the
  following:
  
  <P>
  <PRE> InputFunc ($r, $in, $mtime, additional parameters...) ;
  </PRE>
  <DL>
  <DT><STRONG><A NAME="item__r">$r</A></STRONG><DD>
  <P>
  Apache Request Record (see <STRONG>perldoc Apache</STRONG> for details)
  
  <DT><STRONG><A NAME="item__in">$in</A></STRONG><DD>
  <P>
  a reference to a scalar, to which the input should be returned.
  
  <P>
  <PRE> Example:
  </PRE>
  <P>
  <PRE> open F, &quot;filename&quot; ;
   local $\ = undef ;
   $$in = &lt;F&gt; ;
   close F ;
  </PRE>
  <DT><STRONG><A NAME="item__mtime">$mtime</A></STRONG><DD>
  <P>
  a reference to a scalar, to which the modification time should be returned.
  
  <P>
  <PRE> Example:
  </PRE>
  <P>
  <PRE> $$mtime = -M &quot;filename&quot; ;
  </PRE>
  </DL>
  <P>
  You can give <STRONG>additional parameters</STRONG> (which must be comma-separated) to <STRONG>EMBPERL_INPUT_FUNC</STRONG>
  which will then pass them as a string.
  
  <P>
  <PRE>  Example:
  </PRE>
  <P>
  <PRE>  PerlSetEnv EMBPERL_INPUT_FUNC &quot;InputFunc, foo, bar&quot;
  </PRE>
  <P>
  <PRE>  will call
  </PRE>
  <P>
  <PRE>  InputFunc ($r, $in, $mtime, 'foo', 'bar') ;
  </PRE>
  <P>
  <PRE>  to get the input.
  </PRE>
  <P>
  <STRONG>EXAMPLE for an input function which does just the same as Embperl</STRONG>
  
  
  
  <P>
  <PRE> sub Input
  </PRE>
  <P>
  <PRE>    {
      my ($r, $in, $mtime) = @_ ;
  </PRE>
  <P>
  <PRE>    open F, $r -&gt; filename or return NOT_FOUND ;
      local $\ = undef ;
      $$in = &lt;F&gt; ;
      close F ;
  </PRE>
  <P>
  <PRE>    $$mtime = -M $r -&gt; filename ;
      
      return 0 ;
      }
  </PRE>
  <P>
  See also <A HREF="Embperl.pod.8.html#ProxyInput_r_in_mtime_sr">ProxyInput</A> below, for an input function which comes with Embperl.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="EMBPERL_OUTPUT_FUNC">EMBPERL_OUTPUT_FUNC</A></H2>
  <P>
  This directive allows you to specify a non-standard way of dealing with
  output. Normally, Embperl sends its output (source) to a file/the browser
  (or to a scalar if you use <CODE>Execute</CODE>). Here, you can give the name of a Perl function which is called instead
  of sending the output to a file/the browser. The function must look like
  the following:
  
  <P>
  <PRE> InputFunc ($r, $out, additional parameters...) ;
  </PRE>
  <DL>
  <DT><STRONG>$r</STRONG><DD>
  <P>
  Apache Request Record (see <STRONG>perldoc Apache</STRONG> for details)
  
  <DT><STRONG><A NAME="item__out">$out</A></STRONG><DD>
  <P>
  Output from Embperl
  
  </DL>
  <P>
  You can give <STRONG>additional parameters</STRONG> (which must be comma-separated) to <STRONG>EMBPERL_OUTPUT_FUNC</STRONG>, which will then pass them as a string.
  
  <P>
  <PRE>  Example:
  </PRE>
  <P>
  <PRE>  PerlSetEnv EMBPERL_OUTPUT_FUNC &quot;OutputFunc, foo, bar&quot;
  </PRE>
  <P>
  <PRE>  will call
  </PRE>
  <P>
  <PRE>  OutputFunc ($r, $out, 'foo', 'bar') ;
  </PRE>
  <P>
  <PRE>  for output.
  </PRE>
  <P>
  <STRONG>EXAMPLE for an ouput function which does just the same as Embperl</STRONG>
  
  
  
  <P>
  <PRE> sub Output
  </PRE>
  <P>
  <PRE>    {
      my ($r, $out) = @_ ;
  </PRE>
  <P>
  <PRE>    $r -&gt; send_http_header ;
  </PRE>
  <P>
  <PRE>    $r -&gt; print ($$out) ;
  </PRE>
  <P>
  <PRE>    return 0 ;
      }
  </PRE>
  <P>
  See also <A HREF="Embperl.pod.8.html#LogOutput_r_out_basepath_">LogOutput</A> below, for an output function which comes with Embperl.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.1.html">PREV (Operating-Modes)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.3.html">NEXT (SYNTAX)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.3.html
  
  Index: Embperl.pod.3.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.3</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="SYNTAX">SYNTAX</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.2.html">PREV (Runtime configuration)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.4.html">NEXT (Variable scope and cleanup)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.3.html#_Perl_code_">[+ Perl code +]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Perl_code_">[- Perl code -]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Perl_Code_">[! Perl Code !]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Cmd_Arg_Meta_Commands_">[$ Cmd Arg $]  (Meta-Commands)</A>
  		<LI><A HREF="Embperl.pod.3.html#HTML_Tags">HTML Tags</A>
  	</UL>
  <hr>
  <P>
  Embperl understands four categories of commands. The first three are
  special Embperl commands, and the last category consists of some HTML tags
  which can trigger special processing. Embperl commands can span multiple
  lines and need not start or end at a line boundary.
  
  <P>
  Before the special Embperl commands are processed, and for the VALUE
  attribute of the INPUT tag (see below), all HTML tags are removed and
  special HTML characters are translated to their ASCII values (e.g.,
  `&amp;lt;' is translated to `&lt;'). You can avoid this behavior by
  preceding the special character or HTML tag with a backslash. This is done
  in case your favorite (WYSIWYG) HTML editor inserts tags like line breaks
  or formatting into your Embperl commands where you don't want them.
  
  <P>
  <STRONG>VERY IMPORTANT NOTE:</STRONG> If you do use an ASCII editor to write your HTML documents, you should set
  the option <STRONG>optRawInput</STRONG> so that Embperl does not preprocess your source. You can also HTML-escape
  your code (i.e. write `&amp;lt;' instead of `&lt;'), to avoid ambiguity. In
  most cases it will also work without the optRawInput and HTML-escaping, but
  in some cases Embperl will detect an HTML tag were there isn't one.
  
  <P>
  <STRONG>If you have any trouble with your code, especially with HTML tags or filehandles
  in your Perl code, be sure to understand input- and output- escaping and 
  unescaping. Read the section 
  <A HREF="Embperl.pod.9.html#Inside_Embperl_How_the_embedde">"Inside Embperl"</A>
  to see what's going on!!</STRONG>
  
  
  
  <P>
  All Embperl commands start with a `[' and end with a `]'. To get a real `['
  you must enter `[['.
  
  <P>
  Embperl does not use SGML comments (i.e., &lt;! ... !&gt; or similar things) because some HTML editors can't create them,
  or it's much more complicated. Since every HTML editor takes (or <STRONG>should</STRONG> take) `[' and `]' as normal text, there should be no problem.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_Perl_code_">[+ Perl code +]</A></H2>
  <P>
  Replace the command with the result you get from evaluating the Perl code.
  The Perl code can be anything which can be used as an argument to a Perl
  eval statement. (See <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A> below for restrictions.) Examples:
  
  <P>
  <PRE> [+ $a +]        Replaces the [+ $a +] with the content of
                   the variable $a
  </PRE>
  <P>
  <PRE> [+ $a+1 +]      (Any expression can be used)
  </PRE>
  <P>
  <PRE> [+ $x[$i] +]    (Arrays, hashes, and more complex
                   expressions work)
  </PRE>
  <P>
  <CODE>NOTE:</CODE> Whitespace is ignored. The output will be automatically HTML-escaped (e.g.,
  `&lt;' is translated to `&amp;lt;') depending on the value of the variables <A HREF="Embperl.pod.5.html#item__escmode">$escmode</A>. You do not have to worry about it.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_Perl_code_">[- Perl code -]</A></H2>
  <P>
  Executes the Perl code, but deletes the whole command from the HTML output.
  
  <P>
  Examples:
  
  <P>
  <PRE> [- $a=1 -]            Set the variable $a to one.
                         No output will be generated.
  </PRE>
  <P>
  <PRE> [- use SomeModule -]  You can use other modules.
  </PRE>
  <P>
  <PRE> [- $i=0; while ($i&lt;5) {$i++} -]  Even more complex
                                    statements or multiple
                                    statements are possible.
  </PRE>
  <P>
  <CODE>NOTE:</CODE> Statements like if, while, for, etc., must be contained in a single Embperl
  command. You cannot have the if in one command block and the terminating
  `}' or else in another.
  
  <P>
  <CODE>NOTE:</CODE> To define subroutines, use <A HREF="Embperl.pod.3.html#_Perl_Code_">[! Perl Code !]</A> (see below) instead of [- ... -] to avoid recompilation of the subroutine
  on every request.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_Perl_Code_">[! Perl Code !]</A></H2>
  <P>
  Same as [- Perl Code -] with the exception that the code is only executed
  at the first request. This could be used to define subroutines, or do
  one-time initialization.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_Cmd_Arg_Meta_Commands_">[$ Cmd Arg $]  (Meta-Commands)</A></H2>
  <P>
  Execute an Embperl metacommand.  <STRONG>Cmd</STRONG> can be one of the following. (<STRONG>Arg</STRONG> varies depending on &lt;Cmd&gt;).
  
  <DL>
  <DT><STRONG><A NAME="item_if">if, elsif, else, endif</A></STRONG><DD>
  <P>
  Everything following the <STRONG>if</STRONG> metacommand until the <STRONG>else</STRONG>,
  <STRONG>elsif</STRONG>, or <STRONG>endif</STRONG> is only output if the Perl expression given in
  <STRONG>Arg</STRONG> is true.  <STRONG>else</STRONG> and <STRONG>elsif</STRONG> work similarly.
  
  <P>
  Example:
  
  <P>
  <PRE> [$ if $ENV{REQUEST_METHOD} eq 'GET' $]
   Method was GET&lt;BR&gt;
   [$ else $]
   Method other than GET used&lt;BR&gt;
   [$ endif $]
  </PRE>
  <P>
  This will send one of the two sentences to the client, depending on the
  request method used to retrieve the document.
  
  <DT><STRONG><A NAME="item_while">while, endwhile</A></STRONG><DD>
  <P>
  Executes a loop until the <STRONG>Arg</STRONG> given to <STRONG>while</STRONG> is false.
  
  <P>
  Example: (see eg/x/while.htm)
  
  <P>
  <PRE> [- $i = 0; @k = keys %ENV -]
   [$ while ($i &amp;lt; $#k) $]
   [+ $k[$i] +] = [+ $ENV{$k[$i]} +]&lt;BR&gt;
   [- $i++ -]
   [$ endwhile $]
  </PRE>
  <P>
  This will send a list of all environment variables to the client.
  
  <P>
  NOTE: The `&amp;lt;' is translated to `&lt;' before calling Perl eval,
  unless optRawInput is set.
  
  <DT><STRONG><A NAME="item_do">do, until</A></STRONG><DD>
  <P>
  Executes a loop until the <STRONG>Arg</STRONG> given to <STRONG>until</STRONG> is true.
  
  <P>
  <PRE> Example:
  </PRE>
  <P>
  <PRE> [- $i = 0 -]
   [$ do $]
       [+ $i++ +] &lt;BR&gt;
   [$ until $i &gt; 10 $]
  </PRE>
  <DT><STRONG><A NAME="item_foreach">foreach, endforeach</A></STRONG><DD>
  <P>
  Executes a loop for each element of the second <STRONG>Arg</STRONG>, setting the first <STRONG>Arg</STRONG> accordingly.
  
  <P>
  <PRE> Example:
  </PRE>
  <P>
  <PRE> [- @arr = (1, 3, 5) -]
   [$ foreach $v @arr $]
       [+ $v +] &lt;BR&gt;
   [$ endforeach $]
  </PRE>
  <DT><STRONG><A NAME="item_hidden">hidden</A></STRONG><DD>
  <P>
  <STRONG>Arg</STRONG> consists of zero, one or two names of hashes (with or without the leading
  %) and an optional array as third parameter. The
  <STRONG>hidden</STRONG> metacommand will generate hidden fields for all data contained in the first
  hash but not in the second hash. The default used for the first hash is <CODE>%fdat</CODE>, <CODE>%idat</CODE> is used for the second.
  
  <P>
  If the third parameter is specified, the fields are written in the order
  they appear in this array. That is, all keys of the first hash must be
  properly sorted in this array. This is intended for situations where you
  want to pass data from one form to the next, for example, two forms which
  should be filled in one after the other. (Examples might be an input form
  and a second form to review and accept the input, or a Windows-style
  ``wizard''). Here you can pass along data from previous forms in hidden
  fields. (See eg/x/neu.htm for an example.) If you use just the 'hidden'
  command without parameters, it simply generates hidden fields for all form
  fields submitted to this document which aren't already contained in another
  input field.
  
  <P>
  Example:
  
  <P>
  <PRE>    &lt;FORM ACTION=&quot;inhalt.htm&quot; METHOD=&quot;GET&quot;&gt;
          &lt;INPUT TYPE=&quot;TEXT&quot; NAME=&quot;field1&quot;&gt;
      [$ hidden $]
      &lt;/FORM&gt;
  </PRE>
  <P>
  If you request this with <A
  HREF="http://host/doc.htm?field1=A&field2=B&field3=C">http://host/doc.htm?field1=A&field2=B&field3=C</A>
  
  
  <P>
  the output will be
  
  <P>
  <PRE>    &lt;FORM ACTION=&quot;inhalt.htm&quot; METHOD=&quot;GET&quot;&gt;
          &lt;INPUT TYPE=&quot;TEXT&quot; NAME=&quot;feld1&quot; VALUE=&quot;A&quot;&gt;
          
      &lt;INPUT TYPE=&quot;HIDDEN&quot; NAME=&quot;field2&quot; VALUE=&quot;B&quot;&gt;
      &lt;INPUT TYPE=&quot;HIDDEN&quot; NAME=&quot;field3&quot; VALUE=&quot;C&quot;&gt;
      &lt;/FORM&gt;
  </PRE>
  <P>
  <CODE>NOTE:</CODE> This should only be used for a small amount of data, since the hidden
  fields are sent to the browser, which sends it back with the next request.
  If you have a large amount of data, store it in a file with a unique name
  and send only the filename in a hidden field. Be aware of the fact that the
  data can be change by the browser if the user doesn't behave exactly as you
  expect. Users have a nasty habit of doing this all of the time. Your
  program should be able to handle such situations properly.
  
  <DT><STRONG><A NAME="item_var">var</A></STRONG><DD>
  <P>
  The var command declares one or more variables for use within this Embperl
  document and sets the <STRONG>strict</STRONG> pragma. The variable names must be supplied as space-separated list.
  
  <P>
  Example: [$var <CODE>$a</CODE> <CODE>%b</CODE> <CODE>@c</CODE> $]
  
  <P>
  This is the same as writing the following in normal Perl code:
  
  <P>
  <PRE>        use strict ;
          use vars qw($a %b @c) ;
  </PRE>
  <P>
  NOTE 1: `use strict' within an Embperl document will only apply to the
  block in which it occurs.
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="HTML_Tags">HTML Tags</A></H2>
  <P>
  Embperl recognizes the following HTML tags specially. All others are simply
  passed through, as long as they are not part of a Embperl command.
  
  <DL>
  <DT><STRONG><A NAME="item_TABLE">TABLE, /TABLE, TR, /TR</A></STRONG><DD>
  <P>
  Embperl can generate dynamic tables (one- or two-dimensional). You only
  need to specify one row or column.
  
  <P>
  Embperl generates as many rows or columns as necessary. This is done by
  using the magic variables $row, $col, and $cnt. If you don't use
  $row/$col/$cnt within a table, Embperl does nothing and simply passes the
  table through.
  
  <P>
  Embperl checks if any of $row, $col, or <CODE>$cnt</CODE> is used. Embperl
  repeats all text between &lt;table&gt; and &lt;/table&gt;, as long the
  expressions in which <CODE>$row</CODE> or <CODE>$cnt</CODE> occurs is/are
  defined.
  
  <P>
  Embperl repeats all text between &lt;tr&gt; and &lt;/tr&gt;, as long the
  expressions in which <CODE>$col</CODE> or <CODE>$cnt</CODE> occurs is/are
  defined.
  
  <P>
  See also <A HREF="Embperl.pod.5.html#_tabmode">$tabmode</A> (below) for end-of-table criteria.
  
  <P>
  Examples: (see eg/x/table.htm for more examples)
  
  <P>
  <PRE> [- @k = keys %ENV -]
   &lt;TABLE&gt;
       &lt;TR&gt;
           &lt;TD&gt;[+ $i=$row +]&lt;/TD&gt;
           &lt;TD&gt;[+ $k[$row] +]&lt;/TD&gt;
           &lt;TD&gt;[+ $ENV{$k[$i]} +]&lt;/TD&gt;
       &lt;/TR&gt; 
   &lt;/TABLE&gt;
  </PRE>
  <P>
  This will show all entries in array <CODE>@k</CODE> (which contains the
  keys from %ENV), so the whole environment is displayed (as in the <STRONG>while</STRONG>
  example), with the first column containing the zero-based index, the second
  containing the content of the variable name, and the third the environment
  variable's value.
  
  <P>
  This could be used to display the result of a database query if you have
  the result in an array. You may provide as many columns as you need. It is
  also possible to call a 'fetch' subroutine in each table row.
  
  <DT><STRONG><A NAME="item_TH">TH, /TH</A></STRONG><DD>
  <P>
  The &lt;TH&gt; tag is interpreted as a table heading. If the whole row is
  made up of &lt;TH&gt; &lt;/TH&gt; instead of &lt;TD&gt; &lt;/TD&gt;, it is
  treated as a column heading. Everything else will be treated as row
  headings in the future, but are not now: everything else is ignored in the
  current version.
  
  <DT><STRONG><A NAME="item_DIR">DIR, MENU, OL, UL, DL, SELECT, /DIR, /MENU,
  /OL, /UL, /DL, /SELECT</A></STRONG><DD>
  <P>
  Lists and dropdowns or list boxes are treated exactly as one- dimensional
  tables. Only <A HREF=".html#_row">$row</A>, <A HREF=".html#_maxrow">$maxrow</A>, <A HREF=".html#_col">$col</A>, <A HREF=".html#_maxcol">$maxcol</A> and <A HREF="Embperl.pod.5.html#_tabmode">$tabmode</A>
  are honored. <CODE>$col</CODE> and <CODE>$maxcol</CODE> are ignored. See
  eg/x/lists.htm for an example.
  
  <DT><STRONG><A NAME="item_OPTION">OPTION</A></STRONG><DD>
  <P>
  Embperl checks if there is a value from the form data for a specific option
  in a menu. If so, this option will be pre-selected.
  
  <P>
  Example:
  
  <P>
  &lt;FORM METHOD=``POST''&gt; &lt;P&gt;Select Tag&lt;/P&gt;
  
  <P>
  <PRE>  If you request this document with list.htm?SEL1=x
    you can specify that the element which has a value
    of x is initially selected
  </PRE>
  <P>
  <PRE>  &lt;P&gt;&lt;SELECT NAME=&quot;SEL1&quot;&gt;
       &lt;OPTION VALUE=&quot;[+ $v[$row] +]&quot;&gt;
          [+ $k[$row] +]
       &lt;/OPTION&gt;
    &lt;/SELECT&gt;&lt;/P&gt;
  &lt;/FORM&gt;
  </PRE>
  <DT><STRONG><A NAME="item_INPUT">INPUT</A></STRONG><DD>
  <P>
  The INPUT tag interacts with the hashes <CODE>%idat</CODE> und <CODE>%fdat</CODE>. If the input tag has no value, and a key exists with the same text as the
  NAME attribute of the input tag, Embperl will generate a VALUE attribute
  with the corresponding value of the hash key.
  
  <P>
  All values of &lt;INPUT&gt; tags are stored in the hash <CODE>%idat</CODE>, with NAME as the hash key and VALUE as the hash value. Special processing
  is done for TYPE=RADIO and TYPE=CHECKBOX. If the VALUE attribute contains
  the same text as the value of the hash the CHECKED attribute is inserted,
  else it is removed. So if you specify as the ACTION URL the file which
  contains the form itself, the form will be redisplayed with same values as
  entered the first time. (See eg/x/neu.htm for an example.)
  
  <DT><STRONG><A NAME="item_TEXTAREA">TEXTAREA, /TEXTAREA</A></STRONG><DD>
  <P>
  The TEXTAREA tag is treated exactly like other input fields.
  
  </DL>
  <DL>
  <DT><STRONG><A NAME="item_META">META HTTP-EQUIV= ... </A></STRONG><DD>
  <P>
  &lt;meta http-equiv= ... &gt; will over-ride the corresponding http header.
  This keeps Netscape from asking the user to reload the document when the
  content-type differs between the http header and the meta http-equiv.
  
  <P>
  This can also be used to set http headers. When running under mod_perl
  http-headers can also be set by the function <STRONG>header_out</STRONG>
  
  
  
  <P>
  <PRE>    Example of how to set a http header:
  </PRE>
  <P>
  <PRE>    &lt;META HTTP-EQUIV=&quot;Language&quot; CONTENT=&quot;DE&quot;&gt;
  </PRE>
  <P>
  <PRE>    This is the same as using the Apache function
  </PRE>
  <P>
  <PRE>    [- $req_rec -&gt;� header_out(&quot;Language&quot; =&gt; &quot;DE&quot;); -]
  </PRE>
  </DL>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.2.html">PREV (Runtime configuration)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.4.html">NEXT (Variable scope and cleanup)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.4.html
  
  Index: Embperl.pod.4.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.4</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Variable_scope_and_cleanup">Variable scope and cleanup</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.3.html">PREV (SYNTAX)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.5.html">NEXT (Predefined variables)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  The scope of a variable declared with <STRONG>my</STRONG> or <STRONG>local</STRONG> ends at the end of the enclosing [+/- ... -/+] block; the [+/- ... -/+]
  blocks act much like Perl's { ... } in that regard.
  
  <P>
  Global variables (everything not declared with <STRONG>my</STRONG> or <STRONG>local</STRONG>) will be undef'ed at the end of each request, so you don't need to worry
  about any old variables laying around and causing suspicious results. This
  is only done for variables in the package the code is eval'ed in -- every
  variable that does not have an explicit package name. All variables with an
  explicit package name (i.e., in modules you use) will stay valid until the
  httpd child process dies. Embperl will change the current package to a
  unique name for every document, so the influence between different
  documents is kept to a minimum. You can set the name of the package with <STRONG>EMBPERL_PACKAGE</STRONG>. (See also 
  <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A>.)
  
  <P>
  Since a CGI script is always a process of its own, you don't need to worry
  about that when you use Embperl as a CGI script.
  
  <P>
  If you need to declare variables which need to live longer than just one
  HTTP request (for example, a database handle), you must declare them in
  another package (i.e., $Persistent::handle instead of $handle).
  
  <P>
  If you use the strict pragma, you can use the <STRONG>var</STRONG> metacommand to declare your variables.
  
  <P>
  <CODE>NOTE:</CODE> Bacause Apache::DBI has its own namespace, this module will work together
  with Embperl to maintain your persistent database connection.
  
  <P>
  You can disable the automatic cleanup of global variables with
  <STRONG>EMBPERL_OPTIONS</STRONG> or the <STRONG>cleanup</STRONG> parameter of the <STRONG>Execute</STRONG>
  function.
  
  <P>
  If you like to do your own cleanup you can define a subroutine <STRONG>CLEANUP</STRONG>
  in your document. This will be called right before the variables are
  cleaned up, but after the connection to the client is closed.
  
  <P>
  <PRE> EXAMPLE:
  </PRE>
  <P>
  <PRE>  [! sub CLEANUP { close FH ; } !]
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.3.html">PREV (SYNTAX)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.5.html">NEXT (Predefined variables)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.5.html
  
  Index: Embperl.pod.5.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.5</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Predefined_variables">Predefined variables</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.4.html">PREV (Variable scope and cleanup)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.6.html">NEXT ((Safe-)Namespaces and opcode restrictions)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.5.html#_ENV">%ENV</A>
  		<LI><A HREF="Embperl.pod.5.html#_fdat">%fdat</A>
  		<LI><A HREF="Embperl.pod.5.html#_ffld">@ffld</A>
  		<LI><A HREF="Embperl.pod.5.html#_idat">%idat</A>
  		<LI><A HREF="Embperl.pod.5.html#_row_col">$row, $col</A>
  		<LI><A HREF="Embperl.pod.5.html#_maxrow_maxcol">$maxrow, $maxcol</A>
  		<LI><A HREF="Embperl.pod.5.html#_cnt">$cnt</A>
  		<LI><A HREF="Embperl.pod.5.html#_tabmode">$tabmode</A>
  		<LI><A HREF="Embperl.pod.5.html#_escmode">$escmode</A>
  		<LI><A HREF="Embperl.pod.5.html#_req_rec">$req_rec</A>
  		<LI><A HREF="Embperl.pod.5.html#LOG">LOG</A>
  		<LI><A HREF="Embperl.pod.5.html#OUT">OUT</A>
  		<LI><A HREF="Embperl.pod.5.html#_param">@param</A>
  		<LI><A HREF="Embperl.pod.5.html#_optXXX_dbgXXX">$optXXX $dbgXXX</A>
  	</UL>
  <hr>
  <P>
  Embperl has some special variables which have a predefined meaning.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_ENV">%ENV</A></H2>
  <P>
  Contains the environment as seen from a CGI script.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_fdat">%fdat</A></H2>
  <P>
  Contains all the form data sent to the script by the calling form. The NAME
  attribute builds the key and the VALUE attribute is used as the hash value.
  Embperl doesn't care if it is called with the GET or POST method, but there
  may be restrictions on the length of parameters using GET -- not from
  Embperl, but perhaps from the web server, especially if you're using
  Embperl's CGI mode -- it is safer to use POST.
  
  <P>
  Embperl also supports ENCTYPE multipart/form-data, which is used for file
  uploads. The entry in <CODE>%fdat</CODE> corresponding to the file field
  will be a filehandle, as with CGI.pm. (Embperl uses CGI.pm internally to
  process forms encoded with multipart/form-data.)
  
  <P>
  File upload example:
  
  <P>
  <PRE>  HTML page:
  </PRE>
  <P>
  <PRE>    &lt;FORM METHOD=&quot;POST&quot; ENCTYPE=&quot;multipart/form-data&quot;&gt;
        &lt;INPUT TYPE=&quot;FILE&quot; NAME=&quot;ImageName&quot;&gt;
      &lt;/FORM&gt;
  </PRE>
  <P>
  <PRE>  Embperl ACTION:
  </PRE>
  <P>
  <PRE>    [- if (defined $fdat{ImageName}) {
           open FILE, &quot;&gt; /tmp/file.$$&quot;;
           print FILE $buffer
             while read($fdat{ImageName}, $buffer, 32768);
           close FILE;
         }
      -]
          
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_ffld">@ffld</A></H2>
  <P>
  Contains all the field names in the order in which they were sent by the
  browser. This is normally -- but not necessarily -- the order in which they
  appear in your form.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_idat">%idat</A></H2>
  <P>
  Contains all the values from all input tags processed so far.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_row_col">$row, $col</A></H2>
  <P>
  Row and column counts for use in dynamic tables. (See <A HREF="Embperl.pod.3.html#HTML_Tags">"HTML tag table"</A>.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_maxrow_maxcol">$maxrow, $maxcol</A></H2>
  <P>
  Maxium number of rows or columns to display in a table. To prevent endless
  loops, <CODE>$maxrow</CODE> defaults to 100 and <CODE>$maxcol</CODE> to 10.
  (See <A HREF="Embperl.pod.3.html#HTML_Tags">"HTML tag table"</A>.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_cnt">$cnt</A></H2>
  <P>
  Contains the number of table cells displayed so far. (See <A HREF="Embperl.pod.3.html#HTML_Tags">"HTML tag table"</A>.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_tabmode">$tabmode</A></H2>
  <P>
  Determines how the end of a dynamic table is detected:
  
  <P>
  <STRONG>end of table</STRONG>
  
  
  
  <OL>
  <LI>
  <P>
  End when an expression with <CODE>$row</CODE> becomes undefined. The row
  containing the undefined expression is <STRONG>not</STRONG> displayed.
  
  <LI>
  <P>
  End when an expression with <CODE>$row</CODE> becomes undefined. The row
  containing the undefined expression <STRONG>is</STRONG> displayed.
  
  <LI>
  <P>
  End when <CODE>$maxrow</CODE> rows have been displayed.
  
  </OL>
  <P>
  <STRONG>end of row</STRONG>
  
  
  
  <OL>
  <LI><STRONG><A NAME="item_6">6</A></STRONG>
  <P>
  End when an expression with <CODE>$col</CODE> becomes undefined. The column
  containing the undefined expression is <STRONG>not</STRONG> displayed.
  
  <LI><STRONG><A NAME="item_2">2</A></STRONG>
  <P>
  End when an expression with <CODE>$col</CODE> becomes undefined. The column
  containing the undefined expression <STRONG>is</STRONG> displayed.
  
  <LI><STRONG><A NAME="item_4">4</A></STRONG>
  <P>
  End when <CODE>$maxcol</CODE> columns have been displayed.
  
  </OL>
  <P>
  The default is <STRONG>17</STRONG>, which is correct for all sort of arrays. You should rarely need to change
  it. The two values can be added together.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_escmode">$escmode</A></H2>
  <P>
  Turn HTML and URL escaping on and off. The default is on ($escmode = 3).
  
  <DL>
  <DT><STRONG><A NAME="item__escmode">$escmode = 3</A></STRONG><DD>
  <P>
  The result of a Perl expression is HTML-escaped (e.g., `&gt;' becomes
  `&amp;gt;') in normal text and URL-escaped (e.g., `&amp;' becomes `%26')
  within an &lt;A&gt; tag.
  
  <DT><STRONG>$escmode = 2</STRONG><DD>
  <P>
  The result of a Perl expression is always URL-escaped (e.g., `&amp;'
  becomes `%26').
  
  <DT><STRONG>$escmode = 1</STRONG><DD>
  <P>
  The result of a Perl expression is always HTML-escaped (e.g., `&gt;'
  becomes `&amp;gt;').
  
  <DT><STRONG>$escmode = 0</STRONG><DD>
  <P>
  No escaping takes place.
  
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_req_rec">$req_rec</A></H2>
  <P>
  This variable is only available when running under control of mod_perl. It
  contains the request record needed to access the Apache server API. See <STRONG>perldoc Apache</STRONG> for more information.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="LOG">LOG</A></H2>
  <P>
  This is the filehandle of the Embperl logfile. By writing `print LOG
  ``something''' you can add lines to the logfile. NOTE: The logfile line
  should always start with the pid of the current process and continue with a
  four-character signature delimited by a ':', which specifies the log
  reason.
  
  <P>
  Example: print LOG ``[$$]ABCD: your text\n'' ;
  
  <P>
  If you are writing a module for use under Embperl you can say
  
  <P>
  <PRE>    tie *LOG, 'HTML::Embperl::Log';
  </PRE>
  <P>
  to get a handle by which you can write to the Embperl logfile.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="OUT">OUT</A></H2>
  <P>
  This filehandle is tied to Embperl's output stream. Printing to it has the
  same effect as using the [+ ... +] block. (See also <A HREF="Embperl.pod.2.html#EMBPERL_OPTIONS">optRedirectStdout</A>)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_param">@param</A></H2>
  <P>
  Will be setup by the <STRONG>'param'</STRONG> parameter of the <STRONG>Execute</STRONG> function. Could be used to pass parameters to an Embperl document and back.
  (see 
  <A HREF=".html#By_calling_HTML_Embperl_Execute">Execute</A>
  for further docs)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_optXXX_dbgXXX">$optXXX $dbgXXX</A></H2>
  <P>
  All options (see <A HREF="Embperl.pod.2.html#EMBPERL_OPTIONS">EMBPERL_OPTIONS</A>) and all debugging flags (see <A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A>) can be read and set by the corresponding variables.
  
  <P>
  <PRE>  Example:
  </PRE>
  <P>
  <PRE>    [- $optRawInput = 1 -] # Turn the RawInput option on
      
      Now write something here
  </PRE>
  <P>
  <PRE>    [- $optRawInput = 0 -] # Turn the RawInput option off again
  </PRE>
  <P>
  <PRE>    [+ $dbgCmd +] # Output the state of the dbgCmd flag
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.4.html">PREV (Variable scope and cleanup)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.6.html">NEXT ((Safe-)Namespaces and opcode restrictions)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.6.html
  
  Index: Embperl.pod.6.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.6</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.5.html">PREV (Predefined variables)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.7.html">NEXT (Utility Functions)</a>]&nbsp;&nbsp; <br><hr>
  <P>
  Since most web servers will contain more than one document, it is necessary
  to protect the documents against each other. Embperl does this by using
  Perl namespaces. By default, Embperl executes every document in its own
  namespace (package). This will prevent documents from accidentally
  overriding the other's data. You can change this behavior (or simply the
  package name) with the configuration directive
  <STRONG>EMBPERL_PACKAGE</STRONG>. NOTE: By explicitly specifying a package name, you can access data that
  is used by another document.
  
  <P>
  If Embperl is used by more then one person, it may be neccessary to really
  protect documents from each other. To do this, Embperl gives you the option
  of using safe namespaces. Each document runs in its own package and can't
  access anything outside of this package. (See the documentation of Safe.pm
  for a more detailed discussion of safe namespaces.)
  
  <P>
  To make a document run in a safe namespace, simply add
  <STRONG>optSafeNamespace</STRONG> to <STRONG>EMBPERL_OPTIONS</STRONG>. The default package name used is the same as in normal operation and can
  be changed with
  <STRONG>EMBPERL_PACKAGE</STRONG>. NOTE: From the perspective of the document being executed, the code is
  running in the package <STRONG>main</STRONG>!
  
  <P>
  A second option to make Embperl more secure is the use of the opcode
  restriction mask. Before you can use the opcode mask, you must set up a
  safe compartment.
  
  <P>
  <PRE> B&lt;$cp = HTML::Embperl::AddCompartment($name);&gt;
  </PRE>
  <P>
  This will create a new compartment with a default opcode mask and the name
  $name. (The name is used later to tell Embperl which compartment to use.)
  Now you can change the operator mask. For example:
  
  <P>
  <PRE> B&lt;$cp-&gt;deny(':base_loop');&gt;
  </PRE>
  <P>
  In your configuration you must set the option <STRONG>optOpcodeMask</STRONG> in
  <STRONG>EMBPERL_OPTIONS</STRONG> and specify from which compartment the opcode mask should be taken by
  setting <STRONG>EMBPERL_COMPARTMENT</STRONG>.
  
  <P>
  <PRE> Example (for use with mod_perl):
  </PRE>
  <P>
  <PRE>    B&lt;srm.conf:&gt;
  </PRE>
  <P>
  <PRE>    PerlScript startup.pl
  </PRE>
  <P>
  <PRE>    SetEnv EMBPERL_DEBUG 2285
  </PRE>
  <P>
  <PRE>    Alias /embperl /path/to/embperl/eg
  </PRE>
  <P>
  <PRE>    &lt;Location /embperl/x&gt;
      SetHandler perl-script
      PerlHandler HTML::Embperl
      Options ExecCGI
      PerlSetEnv EMBPERL_OPTIONS 12
      PerlSetEnv EMBPERL_COMPARTMENT test
      &lt;/Location&gt;
  </PRE>
  <P>
  <PRE>    B&lt;startup.pl:&gt;
  </PRE>
  <P>
  <PRE>    $cp = HTML::Embperl::AddCompartment('test');
      $cp-&gt;deny(':base_loop');
  </PRE>
  <P>
  This will execute the file startup.pl on server startup. startup.pl sets up
  a compartment named `test', which will have a default opcode mask and
  additionaly, will have loops disabled. Code will be executed in a safe
  namespace.
  
  <P>
  NOTE: The package name from the compartment is <STRONG>NOT</STRONG> used!
  
  <P>
  Look at the documentation of Safe.pm and Opcode.pm for more detailed
  information on how to set opcode masks.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.5.html">PREV (Predefined variables)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.7.html">NEXT (Utility Functions)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.7.html
  
  Index: Embperl.pod.7.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.7</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Utility_Functions">Utility Functions</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.6.html">PREV ((Safe-)Namespaces and opcode restrictions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.8.html">NEXT (Input/Output Functions)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.7.html#AddCompartment_Name_">AddCompartment($Name)</A>
  		<LI><A HREF="Embperl.pod.7.html#MailFormTo_MailTo_Subject_R">MailFormTo($MailTo, $Subject, $ReturnField)</A>
  		<LI><A HREF="Embperl.pod.7.html#exit">exit</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="AddCompartment_Name_">AddCompartment($Name)</A></H2>
  <P>
  Adds a compartment for use with Embperl. Embperl only uses the opcode mask
  from it, not the package name. AddCompartment returns the newly- created
  compartment so you can allow or deny certain opcodes. See the Safe.pm
  documentation for details of setting up a compartment. See the chapter
  about <A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A> for details on how Embperl uses compartments.
  
  <P>
  Example:
  
  <P>
  <PRE>        $cp = HTML::Embperl::AddCompartment('TEST');
          $cp-&gt;deny(':base_loop');
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="MailFormTo_MailTo_Subject_R">MailFormTo($MailTo, $Subject, $ReturnField)</A></H2>
  <P>
  Sends the content of the hash <CODE>%fdat</CODE> in the order specified by
  <A HREF=".html#item__ffld">@ffld</A> to the given <STRONG>$MailTo</STRONG> addressee, with a subject of <STRONG>$Subject</STRONG>. If you specify <CODE>$ReturnField</CODE> the value of that formfield will
  be used as <STRONG>Return-Path</STRONG>. Usually, this will be the field where the user enters his e-mail address
  in the form.
  
  <P>
  If you specifiy the following example code as the action in your form
  
  <P>
  <PRE>  &lt;FORM ACTION=&quot;x/feedback.htm&quot; METHOD=&quot;POST&quot;
          ENCTYPE=&quot;application/x-www-form-urlencoded&quot;&gt;
  </PRE>
  <P>
  The content of the form will be mailed to the given e-mail address.
  
  <P>
  Example:
  
  <P>
  <PRE> &lt;HTML&gt;
   &lt;HEAD&gt;
   &lt;TITLE&gt;Feedback&lt;/TITLE&gt;
   &lt;/HEAD&gt;
   &lt;BODY&gt;
          [- MailFormTo('webmaster@domain.xy',
                        'Mail from WWW Form', 'email') -]
          Your data has been sccesfully sent!
   &lt;/BODY&gt;
   &lt;/HTML&gt;
  </PRE>
  <P>
  This will send a mail with all fields of the form to <A
  HREF="mailto:webmaster@domain.xy,">webmaster@domain.xy,</A> with the
  Subject 'Mail form WWW Form' and will set the Return-Path of the mail to
  the address which was entered in the field with the name 'email'.
  
  <P>
  <STRONG>NOTE:</STRONG> You must have Net::SMTP (from the libnet package) installed to use this
  function.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="exit">exit</A></H2>
  <P>
  <STRONG>exit</STRONG> will override the normal Perl exit in every Embperl document. Calling exit
  will immediately stop any further processing of that page and send the
  already-done work to the output/browser. 
  
  <P>
  <STRONG>NOTE 1:</STRONG> This currently works only under mod_perl.
  <STRONG>NOTE 2:</STRONG> If you write a module which should work with Embperl under mod_perl, you
  must use Apache::exit instead of the normal Perl exit (just like always
  when running under mod_perl).
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.6.html">PREV ((Safe-)Namespaces and opcode restrictions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.8.html">NEXT (Input/Output Functions)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.8.html
  
  Index: Embperl.pod.8.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.8</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Input_Output_Functions">Input/Output Functions</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.7.html">PREV (Utility Functions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.9.html">NEXT (Inside Embperl - How the embedded Perl code is actually processed)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.8.html#ProxyInput_r_in_mtime_sr">ProxyInput ($r, $in, $mtime, $src, $dest)</A>
  		<LI><A HREF="Embperl.pod.8.html#LogOutput_r_out_basepath_">LogOutput ($r, $out, $basepath)</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="ProxyInput_r_in_mtime_sr">ProxyInput ($r, $in, $mtime, $src, $dest)</A></H2>
  <P>
  <PRE> B&lt;USAGE in srm.conf:&gt;
  </PRE>
  <P>
  <PRE> &lt;Location /embperl/ifunc&gt;
   SetHandler perl-script
   PerlHandler HTML::Embperl
   Options ExecCGI
   PerlSetEnv EMBPERL_INPUT_FUNC &quot;ProxyInput, /embperl/ifunc, <A HREF="http://otherhost/otherpath&quot">http://otherhost/otherpath&quot</A>;
   &lt;/Location&gt;
  </PRE>
  <P>
  This input function will request the source from another URL instead of
  reading it from the disk. In the above USAGE Example, a request to
  /embperl/ifunc/foo.html, will first fetch the URL <A
  HREF="http://otherhost/otherpath/foo.html,">http://otherhost/otherpath/foo.html,</A>
  and then it will process this document by Embperl and then it will send it
  to the browser.
  
  <P>
  This could be used to process documents by mod_include <STRONG>and</STRONG> Embperl, so in one document there can be both Server-Side Includes and
  Embperl Commands.
  
  <P>
  <PRE> Example B&lt;srm.conf&gt; for B&lt;SSI&gt; and B&lt;Embperl&gt;:
  </PRE>
  <P>
  <PRE> &lt;Location /embperl&gt;
   SetHandler perl-script
   PerlHandler HTML::Embperl
   Options ExecCGI
   PerlSetEnv EMBPERL_INPUT_FUNC &quot;ProxyInput, /embperl, <A HREF="http://localhost/src&quot">http://localhost/src&quot</A>;
   &lt;/Location&gt;
  </PRE>
  <P>
  <PRE> &lt;Location /src&gt;
   SetHandler server-parsed
   Options +Includes
   &lt;/Location&gt;
  </PRE>
  <P>
  The source files must be in the location /src, but they will be requested
  via the URI /embperl. Every request to /embperl/foo.html will do a
  proxy-request to /src/foo.html. The file /src/foo.html will be processed by
  mod_include and then sent to Embperl, where it can be processed by Embperl
  before being sent to the browser. It would be also possible to use two
  httpd's on different ports. In this configuration, the source and the URI
  location could be the same.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="LogOutput_r_out_basepath_">LogOutput ($r, $out, $basepath)</A></H2>
  <P>
  <PRE> B&lt;USAGE in srm.conf:&gt;
  </PRE>
  <P>
  <PRE> &lt;Location /embperl/ofunc&gt;
   SetHandler perl-script
   PerlHandler HTML::Embperl
   Options ExecCGI
   PerlSetEnv EMBPERL_OUTPUT_FUNC &quot;LogOutput, /usr/msrc/embperl/test/tmp/log.out&quot;
   &lt;/Location&gt;
  </PRE>
  <P>
  LogOutput is a custom output function. It sends the output to the browser <STRONG>and</STRONG>
  writes the output to a unique file. The filename has the the form
  ``$basepath.$$.$LogOutputFileno''.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.7.html">PREV (Utility Functions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.9.html">NEXT (Inside Embperl - How the embedded Perl code is actually processed)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.9.html
  
  Index: Embperl.pod.9.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.9</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Inside_Embperl_How_the_embedde">Inside Embperl - How the embedded Perl code is actually processed</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.8.html">PREV (Input/Output Functions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.10.html">NEXT (Performance)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Embperl.pod.9.html#1_Remove_the_HTML_tags_Now_it_">1. Remove the HTML tags.  Now it looks like</A>
  		<LI><A HREF="Embperl.pod.9.html#2_Translate_HTML_escapes_to_ASC">2. Translate HTML escapes to ASCII characters</A>
  		<LI><A HREF="Embperl.pod.9.html#3_Remove_all_carriage_returns">3. Remove all carriage returns</A>
  		<LI><A HREF="Embperl.pod.9.html#4_Eval_perl_code_into_a_subrout">4. Eval perl code into a subroutine</A>
  		<LI><A HREF="Embperl.pod.9.html#5_Call_the_subroutine">5. Call the subroutine</A>
  		<LI><A HREF="Embperl.pod.9.html#6_Escape_special_characters_in_">6. Escape special characters in the return value</A>
  		<LI><A HREF="Embperl.pod.9.html#7_Send_the_return_value_as_outp">7. Send the return value as output to the destination</A>
  	</UL>
  <hr>
  <P>
  If Embperl encounters a piece of Perl code
    <STRONG>([+/-/!/$ .... $/!/-/+])</STRONG>
  it takes the following steps.
  
  <OL>
  <LI><STRONG><A NAME="item__">.</A></STRONG>
  <P>
  Remove anything which looks like an HTML tag
  
  <LI><STRONG>.</STRONG>
  <P>
  Translate HTML escapes to their corresponding ASCII characters
  
  <LI><STRONG>.</STRONG>
  <P>
  Remove all carriage returns
  
  <LI><STRONG>.</STRONG>
  <P>
  Eval the Perl code into a subroutine
  
  <LI><STRONG>.</STRONG>
  <P>
  Call the subroutine
  
  <LI><STRONG>.</STRONG>
  <P>
  Escape special characters in the return value
  
  <LI><STRONG>.</STRONG>
  <P>
  Send the return value as output to the destination (browser or file)
  
  </OL>
  <P>
  Steps 1-4 take place only the first time the Perl code is encountered.
  Embperl stores the eval'ed subroutine, so all subsequent requests only need
  to execute steps 5-7.
  
  <P>
  Steps 6 and 7 take place only for code surrounded by [+ ... +].
  
  <P>
  What does this mean?
  
  <P>
  Let's take a piece of code like the following:
  
  <P>
  <PRE> [+ &lt;BR&gt;
   $a = &quot;This '&amp;gt;' is a greater-than sign&quot;
   &lt;BR&gt; +]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="1_Remove_the_HTML_tags_Now_it_">1. Remove the HTML tags.  Now it looks like</A></H2>
  <P>
  <PRE> [+
   $a = &quot;This '&amp;gt;' is a greater-than sign&quot;
   +]
  </PRE>
  <P>
  The &lt;BR&gt;s were inserted by some WYSIWYG HTML editor (e.g., by hitting
  return to make the source more readable. Also, such editors often generate
  ``random'' tags like &lt;FONT&gt;, etc.). Embperl removes them so they
  don't cause syntax errors.
  
  <P>
  There are cases where you actually want the HTML tag to be there. For
  example, suppose you want to output something like
  
  <P>
  <PRE> [+ &quot;&lt;FONT COLOR=$col&gt;&quot; +]
  </PRE>
  <P>
  If you write it this way, Embperl will just remove everything, leaving only
  
  <P>
  <PRE> [+ &quot;&quot; +]
  </PRE>
  <P>
  There are several ways to handle this correctly.
  
  <P>
  <PRE> a. &lt;FONT COLOR=[+$col+]&gt;
      Move the HTML tag out of the Perl code. This is the best way, but
      it is not possible every time.
  </PRE>
  <P>
  <PRE> b. [+ &quot;\&lt;FONT COLOR=$col&gt;&quot; +]
      You can escape the opening angle bracket of the tag with `\'.
  </PRE>
  <P>
  <PRE> c. [+ &quot;&amp;lt;FONT COLOR=$col&amp;gt;&quot; +]
  </PRE>
  <P>
  <PRE>    You can use the HTML escapes instead of the ASCII characters.
      Most HTML editors will automatically do this.  (In this case,
      you don't have to worry about it at all.)
  </PRE>
  <P>
  <PRE> d. Set optRawInput (see below).
      This will completely disable the removal of HTML tags.
  </PRE>
  <P>
  NOTE: In cases b-d, you must also be aware of output escaping (see below).
  
  <P>
  You should also be aware that Embperl will interpret the Perl spaceship
  operator (&lt;&gt;) as an HTML tag and will remove it. So instead of
  
  <P>
  <PRE>  [- $line = &lt;STDIN&gt;; -]
  </PRE>
  <P>
  you need to write either
  
  <P>
  <PRE> a. [- $line = \&lt;STDIN&gt;; -]
   b. [- $line = &amp;lt;STDIN&amp;gt;; -]
  </PRE>
  <P>
  Again, if you use a high-level HTML editor, it will probably write version
  (b) for you automatically.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="2_Translate_HTML_escapes_to_ASC">2. Translate HTML escapes to ASCII characters</A></H2>
  <P>
  Since Perl doesn't understand things like <CODE>$a</CODE> &amp;lt; $b,
  Embperl will translate it to <CODE>$a</CODE> &lt; $b. If we take the
  example from earlier, it will now look like
  
  <P>
  <PRE> [+
   $a = &quot;This '&gt;' is a greater sign&quot;
   +]
  </PRE>
  <P>
  This step is done to make it easy to write Perl code in a high-level HTML
  editor. You do not have to worry that your editor is writing &amp;gt;
  instead of &gt; in the source.
  
  <P>
  Again, sometimes you need to have such escapes in your code. You can write
  them
  
  <P>
  <PRE> a. \&amp;gt;
      Escape them with a `\' and Embperl will not translate them.
  </PRE>
  <P>
  <PRE> b. &amp;amp;gt;
      Write the first `&amp;' as its HTML escape (&amp;amp;).  A normal HTML
      editor will do this on its own if you enter &amp;gt; as text.
  </PRE>
  <P>
  <PRE> c. Set optRawInput (see below)
      This will completely disable the input translation.
  </PRE>
  <P>
  Since not all people like writing in a high level or WYSIWYG HTML editor,
  there is an option to disable steps 1 and 2. You can use the
  <STRONG>optRawInput</STRONG> in EMBPERL_OPTIONS to tell Embperl to leave the Perl code as it is. It is
  highly recommended to set this option if you are writing your HTML in an
  ASCII editor. You normally don't want to set it if you use some sort of
  high level HTML editor.
  
  <P>
  You can also set the optRawInput in your document by using <STRONG>$optRawInput</STRONG>, but you must be aware that it does not have any consequences for the
  current block, because the current block is translated before it is
  executed. So write it in separate blocks:
  
  <P>
  <PRE> [- $optRawInput = 1 -]
   [- $line = &lt;FILEHANDLE&gt; -]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="3_Remove_all_carriage_returns">3. Remove all carriage returns</A></H2>
  <P>
  All carriage returns (<STRONG>\r</STRONG>) are removed from the Perl code, so you can write source on a DOS/Windows
  platform and execute it on a UNIX server. (Perl doesn't like getting
  carriage returns in the code it parses.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="4_Eval_perl_code_into_a_subrout">4. Eval perl code into a subroutine</A></H2>
  <P>
  The next step generates a subroutine out of your Perl code. In the above
  example it looks like:
  
  <P>
  sub foo { <CODE>$a</CODE> = ``This '&gt;' is a greater sign'' }
  
  <P>
  The subroutine is now stored in the Perl interpreter in its internal
  precompiled format and can be called later as often as necessary without
  doing steps 1-4 again. Embperl recognizes if you request the same document
  a second time and will just call the compiled subroutine. This will also
  speed up the execution of dynamic tables and loops, because the code inside
  must be compiled only on the first iteration.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="5_Call_the_subroutine">5. Call the subroutine</A></H2>
  <P>
  Now the subroutine can be called to actually execute the code.
  
  <P>
  If Embperl isn't executing a [+ ... +] block we are done. If it is a [+ ...
  +] block, Embperl needs to generate output, so it continues.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="6_Escape_special_characters_in_">6. Escape special characters in the return value</A></H2>
  <P>
  Our example returns the string:
  
  <P>
  ``This '&gt;' is a greater sign''
  
  <P>
  The greater sign is literal text (and not a closing html tag), so according
  to the HTML specification it must be sent as &amp;gt; to the browser. In
  most cases, this won't be a problem, because the browser will display the
  correct text if we send a literal '&gt;'. Also we could have directly
  written &amp;gt; in our Perl string. But when the string is, for example,
  the result of a database query and/or includes characters from national
  character sets, it's absolutely necessary to send them correctly-escaped to
  the browser to get the desired result.
  
  <P>
  A special case is the &lt;A&gt; HTML tag. Since it includes a URL, the text
  must be URL-escaped instead of HTML-escaped. This means special characters
  like `&amp;' must be sent by their hexadecimal ASCII code and blanks must
  be translated to a `+' sign. If you do not do this, your browser may not be
  able to interpret the URL correctly.
  
  <P>
  Example:
  
  <P>
  <PRE>   &lt;A HREF='<A HREF="http://host/script?name=&quot">http://host/script?name=&quot</A>;[+$n+]&quot;'&gt;
  </PRE>
  <P>
  When <CODE>$n</CODE> is ``My name'' the requested URL, when you click on
  the hyperlink, will be
  
  <P>
  <PRE>   <A HREF="http://host/script?name=My+name">http://host/script?name=My+name</A>
  </PRE>
  <P>
  In some cases it is useful to disable escaping. This can be done by the
  variable <STRONG>$escmode</STRONG>.
  
  <P>
  Example: (For better readability, we assume that optRawInput is set.
  Without it, you need to cover the Embperl pre-processing described in steps
  1-3.)
  
  <P>
  <PRE>    [+ &quot;&lt;FONT COLOR=5&gt;&quot; +]
  </PRE>
  <P>
  <PRE>    This will be sent to the browser as &amp;lt;FONT COLOR=5&amp;gt;, so you
      will see the tag on the browser screen instead of the browser
      switching the color.
  </PRE>
  <P>
  <PRE>    [+ local $escmode=0 ; &quot;&lt;FONT COLOR=5&gt;&quot; +]
  </PRE>
  <P>
  <PRE>    This will (locally) turn off escaping and send the text as a plain
      HTML tag to the browser, so the color of the output will change.
  </PRE>
  <P>
  <PRE>    NOTE: You cannot set $escmode more than once inside a [+ ... +] block.
      Embperl uses the first setting of $escmode it encounters inside the block.
      If you need to change $escmode more than once, you must use muliple
      [+ ... +] blocks.
       
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="7_Send_the_return_value_as_outp">7. Send the return value as output to the destination
  (browser/file)</A></H2>
  <P>
  Now everything is done and the output can be sent to the browser. If you
  haven't set dbgEarlyHttpHeaders, the output is buffered until the
  successful completion of document execution of the document, and is sent to
  the browser along with the HTTP headers. If an error occurs, an error
  document is sent instead.
  
  <P>
  The content length and every &lt;META HTTP-EQUIV=...&gt; is added to the
  HTTP header before it is sent. If Embperl is executed as a subrequest or
  the output is going to a file, no http header is sent.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.8.html">PREV (Input/Output Functions)</a>]&nbsp;&nbsp; [<a href="Embperl.pod.10.html">NEXT (Performance)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Embperl.pod.cont.html
  
  Index: Embperl.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Embperl.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-Embperl.pod.cont">Documentation - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.1.html">NEXT (Operating-Modes)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>Embperl.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="Embperl.pod.1.html#Operating_Modes">Operating-Modes</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.1.html#Offline">Offline</A>
  		<LI><A HREF="Embperl.pod.1.html#As_a_CGI_script">As a CGI script</A>
  		<LI><A HREF="Embperl.pod.1.html#From_mod_perl_Apache_httpd_">From mod_perl (Apache httpd)</A>
  		<LI><A HREF="Embperl.pod.1.html#By_calling_HTML_Embperl_Execut">By calling HTML::Embperl::Execute (\%param)</A>
  		<LI><A HREF="Embperl.pod.1.html#Helper_functions_for_Execute">Helper functions for Execute</A>
  		<LI><A HREF="Embperl.pod.1.html#EXAMPLES_for_Execute_">EXAMPLES for Execute:</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.2.html#Runtime_configuration">Runtime configuration</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_FILESMATCH">EMBPERL_FILESMATCH</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_COMPARTMENT">EMBPERL_COMPARTMENT</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_ESCMODE">EMBPERL_ESCMODE</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_LOG">EMBPERL_LOG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_PACKAGE">EMBPERL_PACKAGE</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_VIRTLOG">EMBPERL_VIRTLOG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_OPTIONS">EMBPERL_OPTIONS</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_DEBUG">EMBPERL_DEBUG</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_INPUT_FUNC">EMBPERL_INPUT_FUNC</A>
  		<LI><A HREF="Embperl.pod.2.html#EMBPERL_OUTPUT_FUNC">EMBPERL_OUTPUT_FUNC</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.3.html#SYNTAX">SYNTAX</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.3.html#_Perl_code_">[+ Perl code +]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Perl_code_">[- Perl code -]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Perl_Code_">[! Perl Code !]</A>
  		<LI><A HREF="Embperl.pod.3.html#_Cmd_Arg_Meta_Commands_">[$ Cmd Arg $]  (Meta-Commands)</A>
  		<LI><A HREF="Embperl.pod.3.html#HTML_Tags">HTML Tags</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.4.html#Variable_scope_and_cleanup">Variable scope and cleanup</A>
  	<LI><A HREF="Embperl.pod.5.html#Predefined_variables">Predefined variables</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.5.html#_ENV">%ENV</A>
  		<LI><A HREF="Embperl.pod.5.html#_fdat">%fdat</A>
  		<LI><A HREF="Embperl.pod.5.html#_ffld">@ffld</A>
  		<LI><A HREF="Embperl.pod.5.html#_idat">%idat</A>
  		<LI><A HREF="Embperl.pod.5.html#_row_col">$row, $col</A>
  		<LI><A HREF="Embperl.pod.5.html#_maxrow_maxcol">$maxrow, $maxcol</A>
  		<LI><A HREF="Embperl.pod.5.html#_cnt">$cnt</A>
  		<LI><A HREF="Embperl.pod.5.html#_tabmode">$tabmode</A>
  		<LI><A HREF="Embperl.pod.5.html#_escmode">$escmode</A>
  		<LI><A HREF="Embperl.pod.5.html#_req_rec">$req_rec</A>
  		<LI><A HREF="Embperl.pod.5.html#LOG">LOG</A>
  		<LI><A HREF="Embperl.pod.5.html#OUT">OUT</A>
  		<LI><A HREF="Embperl.pod.5.html#_param">@param</A>
  		<LI><A HREF="Embperl.pod.5.html#_optXXX_dbgXXX">$optXXX $dbgXXX</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.6.html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A>
  	<LI><A HREF="Embperl.pod.7.html#Utility_Functions">Utility Functions</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.7.html#AddCompartment_Name_">AddCompartment($Name)</A>
  		<LI><A HREF="Embperl.pod.7.html#MailFormTo_MailTo_Subject_R">MailFormTo($MailTo, $Subject, $ReturnField)</A>
  		<LI><A HREF="Embperl.pod.7.html#exit">exit</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.8.html#Input_Output_Functions">Input/Output Functions</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.8.html#ProxyInput_r_in_mtime_sr">ProxyInput ($r, $in, $mtime, $src, $dest)</A>
  		<LI><A HREF="Embperl.pod.8.html#LogOutput_r_out_basepath_">LogOutput ($r, $out, $basepath)</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.9.html#Inside_Embperl_How_the_embedde">Inside Embperl - How the embedded Perl code is actually processed</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.9.html#1_Remove_the_HTML_tags_Now_it_">1. Remove the HTML tags.  Now it looks like</A>
  		<LI><A HREF="Embperl.pod.9.html#2_Translate_HTML_escapes_to_ASC">2. Translate HTML escapes to ASCII characters</A>
  		<LI><A HREF="Embperl.pod.9.html#3_Remove_all_carriage_returns">3. Remove all carriage returns</A>
  		<LI><A HREF="Embperl.pod.9.html#4_Eval_perl_code_into_a_subrout">4. Eval perl code into a subroutine</A>
  		<LI><A HREF="Embperl.pod.9.html#5_Call_the_subroutine">5. Call the subroutine</A>
  		<LI><A HREF="Embperl.pod.9.html#6_Escape_special_characters_in_">6. Escape special characters in the return value</A>
  		<LI><A HREF="Embperl.pod.9.html#7_Send_the_return_value_as_outp">7. Send the return value as output to the destination</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.10.html#Performance">Performance</A>
  	<LI><A HREF="Embperl.pod.11.html#Bugs">Bugs</A>
  	<LI><A HREF="Embperl.pod.12.html#Compatibility">Compatibility</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.12.html#on_Linux_2_x_with">on Linux 2.x with</A>
  		<LI><A HREF="Embperl.pod.12.html#on_Windows_NT_4_0_with">on Windows NT 4.0 with</A>
  		<LI><A HREF="Embperl.pod.12.html#on_Windows_95_with">on Windows 95 with</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.13.html#Support">Support</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.13.html#Feedback_and_Bug_Reports">Feedback and Bug Reports</A>
  		<LI><A HREF="Embperl.pod.13.html#Commerical_Support">Commerical Support</A>
  	</UL>
  
  	<LI><A HREF="Embperl.pod.14.html#References">References</A>
  	<UL>
  
  		<LI><A HREF="Embperl.pod.14.html#Information">Information</A>
  		<LI><A HREF="Embperl.pod.14.html#Download">Download</A>
  	</UL>
  
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Embperl.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Embperl.pod.1.html">NEXT (Operating-Modes)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/Examples.html
  
  Index: Examples.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Examples.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Examples_for_use_of_Embperl_">Examples for use of Embperl.</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="#if_htm">if.htm</A>
  		<LI><A HREF="#loop_htm">loop.htm</A>
  		<LI><A HREF="#table_htm">table.htm</A>
  		<LI><A HREF="#lists_htm">lists.htm</A>
  		<LI><A HREF="#config_htm">config.htm</A>
  		<LI><A HREF="#dbi1_htm">dbi1.htm</A>
  		<LI><A HREF="#dbi2_htm">dbi2.htm</A>
  		<LI><A HREF="#recordset_htm">recordset.htm</A>
  		<LI><A HREF="#input_htm">input.htm</A>
  		<LI><A HREF="#neu_htm">neu.htm</A>
  		<LI><A HREF="#Execute_pl">Execute.pl</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="if_htm">if.htm</A></H2>
  <P>
  simple html file which shows how you can use the if, elsif, else and endif
  metacommands.
  <p>
  [<a href="eg/if.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/if.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/if.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="loop_htm">loop.htm</A></H2>
  <P>
  simple html file which shows how you can use the while, do/until and
  foreach matacommands to display arrays or hashs
  <p>
  [<a href="eg/loop.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/loop.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/loop.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="table_htm">table.htm</A></H2>
  <P>
  simple html file which shows how to use the dynamic table feature 
  <p>
  [<a href="eg/table.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/table.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/table.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="lists_htm">lists.htm</A></H2>
  <P>
  shows you how to use dynamic lists and listboxes and dropdownboxes
  <p>
  [<a href="eg/lists.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/lists.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/lists.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="config_htm">config.htm</A></H2>
  <P>
  print out your perl config, like perl -V does
  <p>
  [<a href="eg/config.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/config.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/config.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="dbi1_htm">dbi1.htm</A></H2>
  <P>
  shows how to fetch data from a database and display them into a table using
  Embperl dynamic tables Please read the setup notes in the file itself.
  <p>
  [<a href="eg/dbi1.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/dbi1.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/dbi1.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="dbi2_htm">dbi2.htm</A></H2>
  <P>
  shows how to fetch data from a database and display them into a table using
  Embperl loop metacommands Please read the setup notes in the file itself.
  <p>
  [<a href="eg/dbi2.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/dbi2.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/dbi2.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="recordset_htm">recordset.htm</A></H2>
  <P>
  shows how to fetch data from a database using the DBIx::Recordset module
  Please read the setup notes in the file itself.
  <p>
  [<a href="eg/recordset.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/recordset.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/recordset.html">Result</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="input_htm">input.htm</A></H2>
  <P>
  a input and confirmation form (including error checking), which data will
  be send via mail
  <p>
  [<a href="eg/input.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/input.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  [<a href="eg/input_1.html">Result Page 1</a>]
  [<a href="eg/input_2.html">Result Page 2</a>]
  [<a href="eg/input_3.html">Result Page 3</a>]
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="neu_htm">neu.htm</A></H2>
  <P>
  this example shows many of the feature of Embperl, as embedding various
  code, conditional processing and form management (It's in German but I
  think it can be understand anyway). If called it works like a wizard known
  from windows 95 where you can enter data on some consecutive pages and walk
  forward or back at everytime preserving the input made so far. Note that
  the database interface is missing from this example. 
  <p>
  [<a href="eg/neu.ep.html">Embperl source</a>]&nbsp;&nbsp;
  [<a href="eg/neu.src.html">Full HTML source</a>]&nbsp;&nbsp; 
  <br>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Execute_pl">Execute.pl</A></H2>
  <P>
  This is an perl script which shows how to use the function
  HTML::Embperl::Execute. It runs under Apache::Registry or offline.
  <p>
  [<a href="eg/execute.src.html">Perl source</a>]&nbsp;&nbsp;
  [<a href="eg/execute.html">Result</a>]
  <br>
  
  <P>
  <p>[<a href="index.htm">HOME</a>]&nbsp;&nbsp; [<a href="Examples.pod.cont.htm">CONTENT</a>]&nbsp;&nbsp; [<a href="Examples.pod.cont.htm">PREV (Examples - Content)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  <EM>eg</EM>  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.1.html
  
  Index: Faq.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Downloading_Compiling_Install">Downloading, Compiling & Installing</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">PREV (FAQ - Content)</a>]&nbsp;&nbsp; [<a href="Faq.pod.2.html">NEXT (Common Problems)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.1.html#Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl?</A>
  		<LI><A HREF="Faq.pod.1.html#Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl for Win32?</A>
  		<LI><A HREF="Faq.pod.1.html#I_want_to_run_Embperl_with_mod_p">I want to run Embperl with mod_perl under Apache. In what order should I</A>
  		<LI><A HREF="Faq.pod.1.html#I_m_getting_">I'm getting:</A>
  		<LI><A HREF="Faq.pod.1.html#I_m_trying_to_build_HTML_Embper">I'm trying to build HTML::Embperl, and while running 'make' i get:</A>
  		<LI><A HREF="Faq.pod.1.html#I_have_a_lot_of_errors_in_make_">I have a lot of errors in 'make test' from mod_perl when using Embperl</A>
  		<LI><A HREF="Faq.pod.1.html#Running_make_test_fails_with_a">Running 'make test' fails with an error message at loading of Embperl </A>
  		<LI><A HREF="Faq.pod.1.html#How_can_I_build_a_statically_lin">How can I build a statically-linked copy of Embperl with mod_perl </A>
  		<LI><A HREF="Faq.pod.1.html#How_do_I_load_Embperl_at_server_">How do I load Embperl at server startup?</A>
  	</UL>
  <hr>
  <P>
  For basics on downloading, compiling, and installing, please see the 
  <A HREF=".html#INSTALLATION">INSTALLATION</A> in the Embperl documentation. Please be sure to load Embperl at server
  startup - if you do not, various problems may result. 
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl?</A></H2>
  <P>
  No.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl for Win32?</A></H2>
  <P>
  Not at the present time, but this may change.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_want_to_run_Embperl_with_mod_p">I want to run Embperl with mod_perl under Apache. In what order should I
  do the compiling?</A></H2>
  <P>
  First mod_perl and Apache, then Embperl. 
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_m_getting_">I'm getting:</A></H2>
  <P>
  ../apache_1.3.0/src/include/conf.h:916: regex.h: No such file or directory
  
  <P>
  Try compiling Embperl again, like this:
  
  <P>
  <PRE>    make DEFS=-DUSE_HSREGEX
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_m_trying_to_build_HTML_Embper">I'm trying to build HTML::Embperl, and while running 'make' i get:</A></H2>
  <P>
  cc: Internal compiler error: program cc1 got fatal signal 11 make: ***
  [epmain.o] Error 1
  
  <P>
  GCC croaking with signal 11 frequently indicates hardware problems. See <A
  HREF="http://www.bitwizard.nl/sig11/">http://www.bitwizard.nl/sig11/</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_have_a_lot_of_errors_in_make_">I have a lot of errors in 'make test' from mod_perl when using Embperl</A></H2>
  <P>
  Try recompiling Perl and all modules -- this can sometimes make those
  annoying error messages disappear!
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Running_make_test_fails_with_a">Running 'make test' fails with an error message at loading of Embperl 
  (even though mod_perl compiled and tested cleanly!)</A></H2>
  <P>
  This can happen when symbols in the Apache binary can not be found or are
  not being resolved correctly.
  
  <P>
  Some OS do this (for instance bsdos), and it can also happen if your Apache
  binary is set to strip symbol information out from binaries. 
  
  <P>
  Try:
  
  <OL>
  <LI><STRONG><A NAME="item__make_clean">) make clean</A></STRONG>
  <LI><STRONG><A NAME="item__perl_Makefile_PL">) perl Makefile.PL</A></STRONG>
  <P>
  NOTE: answer _no_ to mod_perl support. (This is important!)
  
  <LI><STRONG><A NAME="item__make_test">) make test</A></STRONG>
  </OL>
  <P>
  If that works, it means that your installation of Embperl is OK, but is
  having problems resolving symbols with Apache.
  
  <P>
  Try rebuilding Apache and mod_perl from scratch, and make sure you do not
  strip symbols out of either.
  
  <P>
  If you don't succeed with this approach, try statically linking Embperl to
  Apache/mod_perl (please see the next question for step-by-step instructions
  on how to do this).
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_build_a_statically_lin">How can I build a statically-linked copy of Embperl with mod_perl 
  support?</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__go_to_your_mod_perl_directory_">) go to your mod_perl directory, change to src/modules/perl and edit the
  Makefile so that it contains the line</A></STRONG>
  <P>
  <PRE>    #STATIC_EXTS = Apache Apache::Constants HTML::Embperl
  </PRE>
  <LI><STRONG><A NAME="item__add_a_definition_for_EPDIR_and">) add a definition for EPDIR and change the ONJ= line so that it looks
  like this:</A></STRONG>
  <P>
  EPDIR=/usr/msrc/embperl OBJS=$(PERLSRC:.c=.o) $(EPDIR)/Embperl.o
  $(EPDIR)/epmain.o $(EPDIR)/epio.o (EP DIR)/epeval.o $(EPDIR)/epcmd.o
  $(EPDIR)/epchar.o $(EPDIR)/eputil.o
  
  <LI><STRONG><A NAME="item__go_to_the_mod_perl_directory_a">) go to the mod_perl directory and run</A></STRONG>
  <P>
  <PRE>    perl Makefile.PL
  </PRE>
  <LI><STRONG><A NAME="item__go_to_the_Embperl_directory_an">) go to the Embperl directory and do</A></STRONG>
  <P>
  <PRE>    make clean
      perl Makefule.PL
      make
  </PRE>
  <P>
  (to compile in mod_perl support)
  
  <LI><STRONG><A NAME="item__go_back_to_the_mod_perl_direct">) go back to the mod_perl directory and remake Apache by typing</A></STRONG>
  <P>
  <PRE>    make
  </PRE>
  <P>
  Now you have successfully built a httpd with statically-linked Embperl.
  
  <P>
  NOTE: If you want to stop here, you can skip to step 11. and run a 'make
  install' in the Embperl directory to finish.
  
  <P>
  But if you want to run Embperl tests and/or if you want to be able to use
  Embperl in offline or ``vanilla'' CGI mode, we need to continue:
  
  <LI><STRONG><A NAME="item__go_back_to_the_Embperl_directo">) go back to the Embperl directory</A></STRONG>
  <LI><STRONG><A NAME="item__backup_the_file_test_conf_conf">) backup the file test/conf/config.pl</A></STRONG>
  <LI><STRONG><A NAME="item__now_build_Embperl_again_but_w">) now build Embperl again but _without_ mod_perl support</A></STRONG>
  <P>
  <PRE>    make clean
      perl Makefile.PL
      make
  </PRE>
  <LI><STRONG><A NAME="item__restore_your_saved_config_pl_t">) restore your saved config.pl to test/conf/config.pl</A></STRONG>
  <P>
  (without this step, only the offline mode would be tested)
  
  <LI><STRONG><A NAME="item__run_make_test_for_Embperl">) run 'make test' for Embperl</A></STRONG>
  <LI><STRONG><A NAME="item__do_make_install_for_Embperl">) do 'make install' for Embperl</A></STRONG>
  </OL>
  <P>
  NOTE: You should do it in this order, or it may not work.
  
  <P>
  NOTE: It seems to be necessary to load Embperl at server startup, either by
  PerlModule or in a PerlScript. See next question on how to do this.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_do_I_load_Embperl_at_server_">How do I load Embperl at server startup?</A></H2>
  <P>
  You can load Embperl at server startup by PerlModule or in a startup.pl:
  
  <OL>
  <LI><STRONG><A NAME="item__edit_your_srm_conf_file_to_rea">) edit your  srm.conf file to read:</A></STRONG>
  <P>
  <PRE>    PerlModule HTML::Embperl
  </PRE>
  <LI><STRONG><A NAME="item__edit_your_startup_pl_file_to_r">) edit your startup.pl file to read:</A></STRONG>
  <P>
  <PRE>    use HTML::Embperl
  </PRE>
  </OL>
  <P>
  NOTE: Either of these approaches can often 'fix' SIGSEVs in any mod_perl
  handler, not just Embperl.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">PREV (FAQ - Content)</a>]&nbsp;&nbsp; [<a href="Faq.pod.2.html">NEXT (Common Problems)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.2.html
  
  Index: Faq.pod.2.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.2</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Common_Problems">Common Problems</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.1.html">PREV (Downloading, Compiling & Installing)</a>]&nbsp;&nbsp; [<a href="Faq.pod.3.html">NEXT (Common Questions)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.2.html#Why_doesn_t_the_following_line_w">Why doesn't the following line work?</A>
  		<LI><A HREF="Faq.pod.2.html#I_m_getting_Glob_not_terminate">I'm getting: &quot;Glob not terminated at ...&quot;</A>
  		<LI><A HREF="Faq.pod.2.html#My_HTML_is_getting_stripped_out_">My HTML is getting stripped out.</A>
  		<LI><A HREF="Faq.pod.2.html#I_am_using_optRawInput_and_my">I _am_ using optRawInput, and my HTML _is_ still being stripped out!</A>
  		<LI><A HREF="Faq.pod.2.html#Help_I_got_a_SIGSEGV_Ack_">Help! I got a SIGSEGV! Ack!</A>
  		<LI><A HREF="Faq.pod.2.html#I_am_having_troubles_with_using_">I am having troubles with using Embperl in combination with</A>
  		<LI><A HREF="Faq.pod.2.html#I_can_t_get_PerlSendHeader_to_wo">I can't get PerlSendHeader to work under Embperl?</A>
  		<LI><A HREF="Faq.pod.2.html#But_how_do_I_customize_the_heade">But how do I customize the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.2.html#I_can_t_figure_out_how_to_split_">I can't figure out how to split a 'while' statement across </A>
  		<LI><A HREF="Faq.pod.2.html#My_HTML_tags_like_and_">My HTML tags like '&lt;' '&gt;' and '&quot;' are being translated to &amp;lt;, &amp;gt; !!!</A>
  		<LI><A HREF="Faq.pod.2.html#Netscape_asks_to_reload_the_docu">Netscape asks to reload the document</A>
  	</UL>
  <hr>
  <P>
  The most common problems of all involve Escaping and Unescaping. They are
  so common, that an entire section on 
  <A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping & Unescaping</A> is devoted to them.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Why_doesn_t_the_following_line_w">Why doesn't the following line work?</A></H2>
  <P>
  <PRE>   [+ $var . &quot;&lt;b&gt;&quot;. $foo . &quot;&lt;/b&gt;&quot;. $bar +]
  </PRE>
  <P>
  See what we mean? This is an Escaping &amp; Unescaping problem for sure.
  You need to escape &lt;b&gt; as ' &amp;lt;b&amp;gt ' and you probably also need to read the
  section on <A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping & Unescaping</A>...
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_m_getting_Glob_not_terminate">I'm getting: &quot;Glob not terminated at ...&quot;</A></H2>
  <P>
  This might be a problem with <A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping & Unescaping</A> as well.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="My_HTML_is_getting_stripped_out_">My HTML is getting stripped out.</A></H2>
  <P>
  Sounds like a problem with Escaping &amp; Unescaping again!  
  
  <P>
  Unless, of course, you have already read the section on Escaping &amp;
  Unescaping, and it is still happening... Like if you are using optRawInput
  and your HTML is _still_ being stripped out... 
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_am_using_optRawInput_and_my">I _am_ using optRawInput, and my HTML _is_ still being stripped out!</A></H2>
  <P>
  Aha! Well that's different! Never mind..
  
  <P>
  It can be easy to accidentally set optRawInput too late in your code...
  
  <P>
  Try setting it in an extra Perl block  (&nbsp;[-&nbsp;$optRawInput&nbsp;=&nbsp;1&nbsp;-]&nbsp;) 
  earlier in the code, or in the server config, and see if that doesn't solve
  the problem... (optRawInput must be set before the block that uses it
  begins, as the block which uses it shouldn't be translated).
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Help_I_got_a_SIGSEGV_Ack_">Help! I got a SIGSEGV! Ack!</A></H2>
  <P>
  If Embperl is not compiled at server startup, it can cause error messages,
  SEGfaults, core dumps, buffer overflow, etc - especially if you are using
  another module inside an Embperl page. As far as anyone can tell, this
  seems to be a Perl/mod_perl problem - but maybe not. If you have any ideas,
  let me know.
  
  <P>
  To see the steps for loading Embperl at server startup, please see the
  section <A HREF="Faq.pod.1.html#Downloading_Compiling_Install">Downloading, Compiling & Installing</A>.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_am_having_troubles_with_using_">I am having troubles with using Embperl in combination with
  Apache::Include and Apache::Registry.</A></H2>
  <P>
  This is a known problem, but it is a problem with mod_perl rather than with
  Embperl. It looks like mod_perl clears the request_rec after the first
  subrequest, so that it later doesn't know which subrequest was intended
  (unless it's explicitly specified). Try using:
  
  <P>
  <PRE>    Apache::Include-&gt;virtual(&quot;test.epl&quot;, $r);
  </PRE>
  <P>
  (instead of just Apache::Include-&gt;virtual(``test.epl''); where
  <CODE>$r</CODE> is the apache request rec)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_can_t_get_PerlSendHeader_to_wo">I can't get PerlSendHeader to work under Embperl?</A></H2>
  <P>
  You don't need PerlSendHeader when using Embperl - Embperl always sends its
  own httpd header.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="But_how_do_I_customize_the_heade">But how do I customize the header that Embperl is sending?</A></H2>
  <P>
  You'll find the answer to this and many other header issues in the <A HREF="Faq.pod.3.html#Common_Questions">Common Questions</A> section.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_can_t_figure_out_how_to_split_">I can't figure out how to split a 'while' statement across 
  two [--] segments</A></H2>
  <P>
  That isn't surprising, as you cannot split Perl statements across multiple
  blocks in Embperl :) You need to use a metacommand for that. The [$while$]
  metacommand comes to mind... :) 
  
  <P>
  For a list of all possible metacommands, see the section on 
  <A HREF=".html#_Cmd_Arg_Meta_Commands_">Meta-Commands</A> in the Embperl documentation.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="My_HTML_tags_like_and_">My HTML tags like '&lt;' '&gt;' and '&quot;' are being translated to &amp;lt;, &amp;gt; !!!</A></H2>
  <P>
  Hey! Not you again!? I thought we already sent you to the 
  <A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping & Unescaping</A> section of the FAQ?!?! ;)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Netscape_asks_to_reload_the_docu">Netscape asks to reload the document</A></H2>
  <P>
  If you have something like this in your source, it may be the problem:
  
  <P>
  <PRE>    &lt;META HTTP-EQUIV=&quot;content-type&quot; CONTENT=&quot;text/html;charset=iso-8859-1&quot;&gt;
  </PRE>
  <P>
  Netscape seems to have a problem in such cases, because the http header is
  only content-type text/html, while the META HTTP-EQUIV has an additional
  charset specified. If you turn optEarlyHttpHeader off, Embperl will
  automatically set the http header to be the same as the META HTTP-EQUIV.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.1.html">PREV (Downloading, Compiling & Installing)</a>]&nbsp;&nbsp; [<a href="Faq.pod.3.html">NEXT (Common Questions)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.3.html
  
  Index: Faq.pod.3.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.3</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Common_Questions">Common Questions</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.2.html">PREV (Common Problems)</a>]&nbsp;&nbsp; [<a href="Faq.pod.4.html">NEXT (Escaping & Unescaping)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.3.html#What_is_the_difference_between_E">What is the difference between Embperl and ePerl (and ASP, etc)?</A>
  		<LI><A HREF="Faq.pod.3.html#How_can_I_get_my_HTML_files_to_b">How can I get my HTML files to be converted into Perl code which, as a</A>
  		<LI><A HREF="Faq.pod.3.html#I_have_an_HTML_page_which_is_dyn">I have an HTML page which is dynamically generated at runtime </A>
  		<LI><A HREF="Faq.pod.3.html#How_can_I_customise_the_header_t">How can I customise the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_use_Embperl_to_send_cookie">Can I use Embperl to send cookies?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_do_REDIRECT_with_Embperl_">Can I do REDIRECT with Embperl?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_serve_random_GIFs_with_Emb">Can I serve random GIFs with Embperl?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_use_Embperl_as_a_template_">Can I use Embperl as a template for forms?</A>
  		<LI><A HREF="Faq.pod.3.html#Does_Embperl_automatically_add_H">Does Embperl automatically add HIDDEN fields?</A>
  		<LI><A HREF="Faq.pod.3.html#What_about_security_Is_Embperl_">What about security? Is Embperl Secure?</A>
  		<LI><A HREF="Faq.pod.3.html#Is_there_any_plan_to_make_Embper">Is there any plan to make Embperl an Object so someone could subclass it</A>
  		<LI><A HREF="Faq.pod.3.html#Are_Embperl_routines_currently_p">Are Embperl routines currently pre-compiled or even cached, or are only</A>
  		<LI><A HREF="Faq.pod.3.html#Why_are_Perl_blocks_broken_up_in">Why are Perl blocks broken up into single subroutines?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_pass_QUERY_STRING_informat">Can I pass QUERY_STRING information to an HTML::Embperl::Execute call?</A>
  	</UL>
  <hr>
  <P>
  The most common questions of all deal with <A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping  & Unescaping</A>  - they are so common that the whole next section is devoted to them. Less
  common questions are addressed here:
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="What_is_the_difference_between_E">What is the difference between Embperl and ePerl (and ASP, etc)?</A></H2>
  <P>
  ePerl also embeds Perl code in documents, but it doesn't know anything
  about HTML. 
  
  <P>
  Embperl's strongest features (the ones which have received the most
  attention during development so far) are probably:
  
  <DL>
  <DT><STRONG><A NAME="item__">- Dynamic Tables</A></STRONG><DD>
  <DT><STRONG>- Formfields Processing</STRONG><DD>
  <DT><STRONG>- Escaping/Unescaping</STRONG><DD>
  <DT><STRONG>- Safe Namespaces</STRONG><DD>
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_get_my_HTML_files_to_b">How can I get my HTML files to be converted into Perl code which, as a
  whole, could then be compiled as function named munge(URL) so that I could, for 
  instance, fetch Perl docs from the Formatter table and compile them the
  way AUTOLOAD does.</A></H2>
  <P>
  This is a very good example of a very long run-on sentence, and it is also
  a very good example of a thing that ePerl would do better than Embperl.
  
  <P>
  See ePerl, by Ralf Engelschalls, at <A
  HREF="http://www.engelschall.com.">http://www.engelschall.com.</A> See also
  the previous question, ``What is the difference between Embperl and
  ePerl?''
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_have_an_HTML_page_which_is_dyn">I have an HTML page which is dynamically generated at runtime 
  and should be post-processed by Embperl. How can I do this?</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__Generate_the_page_within_a_nor">) Generate the page within a normal CGI/Apache::Registry script and
  put the result into a scalar - then you can call HTML::Embperl::Execute to
  post-process your document. Execute can either send the document to the
  browser or put it into another scalar for further processing.</A></STRONG>
  <LI><STRONG><A NAME="item__Use_EMBPERL_INPUT_FUNC_1_1b1_">) Use EMBPERL_INPUT_FUNC (1.1b1 and above). With this configuration
  directive, you can specify a custom input function which reads the
  HTML source from the disk or even from a database. Embperl also
  provides the function ProxyInput, which allows you to get input from
  another web server altogether.</A></STRONG>
  </OL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_customise_the_header_t">How can I customise the header that Embperl is sending?</A></H2>
  <P>
  You can write it as
  
  <P>
  <PRE>    &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html&quot;&gt;
  </PRE>
  <P>
  (Embperl will automatically insert all meta http-equiv tags into the http
  header)
  
  <P>
  or you can use
  
  <P>
  <PRE>    [- $req_rec -&gt; content_type ('text/html') -]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Can_I_use_Embperl_to_send_cookie">Can I use Embperl to send cookies?</A></H2>
  <P>
  Yes. Embperl sends its own headers, so all you have to do to send cookies
  is to remember to print an additional header.
  
  <P>
  Example Code:
  
  <OL>
  <LI><STRONG><A NAME="item__in_documents_add">) in documents, add</A></STRONG>
  <P>
  <PRE>    &lt;META HTTP-EQUIV=&quot;Set-Cookie&quot; CONTENT=&quot;[+ $cookie +] = [+ $value +]&quot;&gt;
  </PRE>
  <LI><STRONG><A NAME="item__or_using_mod_perl_s_function">) or - using mod_perl's functionality - use</A></STRONG>
  <P>
  <PRE>    [- $req_rec -&gt;  header_out(&quot;Set-Cookie&quot; =&gt; &quot;$cookie=$value&quot;); -]
  </PRE>
  </OL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Can_I_do_REDIRECT_with_Embperl_">Can I do REDIRECT with Embperl?</A></H2>
  <P>
  The function you want to call is Apache::header_out.
  
  <P>
  Example Code:
  
  <P>
  <PRE>    [-
      use Apache;
      use Apache::Constants qw(REDIRECT);
  </PRE>
  <P>
  <PRE>    $req_rec-&gt;header_out(&quot;Location&quot; =&gt; &quot;<A HREF="http://">http://</A>$ENV{SERVER_NAME}/specials/&quot;);
      $req_rec-&gt;status(REDIRECT);
      -]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Can_I_serve_random_GIFs_with_Emb">Can I serve random GIFs with Embperl?
  (Will Leonard Stein's GD.pm module work with Embperl??)</A></H2>
  <P>
  As always, there is more than one way to do this - especially as this is
  more of a question of how you are coding your HTML than how you are coding
  your Embperl.
  
  <P>
  Here are some ideas:
  
  <OL>
  <LI><STRONG><A NAME="item__You_could_include_an_IMG_tag_w">) You could include an IMG tag which points to your cgi-bin, where
  a regular CGI script serves the graphics.</A></STRONG>
  <LI><STRONG><A NAME="item__You_could_be_running_Apache_R">)  You could be running Apache::Registry, which can generate
  on-the-fly GIFs using GD. (This is just the same as if you were including
  the GD image from a static page or from another CGI script, but it allows
  all of the appropriate logic to live in a single document, which might be
  appropriate for some Embperl users).</A></STRONG>
  </OL>
  <P>
  If you think of another way, or come up with some sample code, I'd love to
  hear from you, so that I could add it to the FAQ...
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Can_I_use_Embperl_as_a_template_">Can I use Embperl as a template for forms?
  Can I make form values persist (like with &quot;vanilla&quot; CGI)?
  Does Embperl rewrite my template file so that parameters of things like
  INPUT/TEXTAREA/SELECT persist?</A></H2>
  <P>
  Yes. Your page design staff should just be able to say &lt;input
  name=``foo''&gt; and let the default attributes of ``foo'' be defined
  elsewhere - for instance in a settings file. In this case,
  <CODE>%fdat</CODE> should be pre-set with your default values. Setting
  $fdat{foo} = ``abc'' will cause Embperl to change the above code to
  &lt;input name=``foo'' value=``abc''&gt;.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Does_Embperl_automatically_add_H">Does Embperl automatically add HIDDEN fields?</A></H2>
  <P>
  The [$hidden$] metacommand creates hidden fields for every entry in
  <CODE>%fdat</CODE> which was not used by any other input tag so far.
  
  <P>
  You can also try something like this:
  
  <P>
  <PRE>    [-
      $fdat{foo} = &quot;abc&quot; ;
      $fdat{bar} = &quot;xyz&quot; ;
      -]
  </PRE>
  <P>
  <PRE>    &lt;input name=&quot;foo&quot;&gt;
  </PRE>
  <P>
  <PRE>    [$hidden$]
  </PRE>
  <P>
  and Embperl will create:
  
  <P>
  <PRE>    &lt;input name=&quot;foo&quot; value=&quot;abc&quot;&gt;
      &lt;input type=hidden name=&quot;bar&quot; value=&quot;xyz&quot;&gt;
  </PRE>
  <P>
  For a list of all possible metacommands, see the section on 
  <A HREF=".html#_Cmd_Arg_Meta_Commands_">Meta-Commands</A> in the Embperl documentation.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="What_about_security_Is_Embperl_">What about security? Is Embperl Secure?</A></H2>
  <P>
  Just like anything else, Embperl is as secure as you make it. Embperl
  incorporates Safe.pm, which will make it impossible to accidentally access
  other Packages - it also permits the Administrator to disable Perl opcodes,
  etc.
  
  <P>
  For more on security, please see <A HREF=".html#_Safe_Namespaces_and_opcode_res">(Safe-)Namespaces and opcode restrictions</A> in the Embperl documentation.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Is_there_any_plan_to_make_Embper">Is there any plan to make Embperl an Object so someone could subclass it
  and override certain of its methods?  (For example, I'd like to let it
  parse the file for me, but then let me control the manipulation of the
  form tags.)</A></H2>
  <P>
  Embperl will be converted to an Object in the near future. This will, among
  other things, make it re-entrant, so that you will be able to call Execute
  from within an Embperl page. It will also mean that Embperl will come with
  hooks, which will allow you to alter or change the way Embperl processes
  code. The details have not all been worked out yet, but I'm working on
  it... :)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Are_Embperl_routines_currently_p">Are Embperl routines currently pre-compiled or even cached, or are only
  fragments cached?</A></H2>
  <P>
  All embedded Perl code is compiled the first time it is executed and cached
  for later use. The second time the code is executed, only the precompiled
  p-code is called.
  
  <P>
  Every code block is compiled as a single subroutine. The HTML text between
  the Perl block is still read from the file.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Why_are_Perl_blocks_broken_up_in">Why are Perl blocks broken up into single subroutines?</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__It_makes_it_easier_to_process_">) It makes it easier to process the HTML tags between the Perl blocks -
  this gives you more control over what's happening</A></STRONG>
  <LI><STRONG><A NAME="item__If_you_compiled_everything_t">) If you compiled _everything_ to Perl, you would hold all of the
  HTML text in memory, and your Apache child processes would grow and
  grow... But often-accessed documents are still held in memory by 
  your os disk cache, which is much more memory-efficient.</A></STRONG>
  <LI><STRONG><A NAME="item__There_is_only_so_far_that_you_">) There is only so far that you can go with precompiling until you reach
  the point of diminishing returns. My guess is that converting dynamic
  tables and other HTML processing to Perl at this point in Embperl's
  development would actually slow down operation.</A></STRONG>
  </OL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Can_I_pass_QUERY_STRING_informat">Can I pass QUERY_STRING information to an HTML::Embperl::Execute call?</A></H2>
  <P>
  With Embperl 1.0 and higher, you can do this. QUERY_STRING is set as
  $ENV{QUERY_STRING} by default. Alternatively, you can use the fdat
  parameter to pass values to %fdat.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.2.html">PREV (Common Problems)</a>]&nbsp;&nbsp; [<a href="Faq.pod.4.html">NEXT (Escaping & Unescaping)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.4.html
  
  Index: Faq.pod.4.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.4</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Escaping_Unescaping">Escaping & Unescaping</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.3.html">PREV (Common Questions)</a>]&nbsp;&nbsp; [<a href="Faq.pod.5.html">NEXT (Debugging)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.4.html#Escaping_Unescaping_Input">Escaping &amp; Unescaping Input</A>
  		<LI><A HREF="Faq.pod.4.html#Ways_To_Escape_Input_">Ways To Escape Input:</A>
  		<LI><A HREF="Faq.pod.4.html#Escaping_Unescaping_Output">Escaping &amp; Unescaping Output</A>
  		<LI><A HREF="Faq.pod.4.html#Ways_To_Escape_Output_">Ways To Escape Output:</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Escaping_Unescaping_Input">Escaping &amp; Unescaping Input</A></H2>
  <P>
  By default, Embperl removes all HTML tags from the Perl source. It does
  this because many high-end WYSIWYG HTML Editors (like MS Front Page) insert
  HTML tags like &lt;FONT&gt; and &lt;COLOR&gt; in rather random places (like
  in the middle of your Perl code). This Embperl feature keeps things like
  
  <P>
  <PRE>    [- $var  = 1; &lt;br&gt;
          $foo = 2 -]
  </PRE>
  <P>
  permissable, so that you can enter Perl code while you mark up pages in an
  editor, all at once. In this example, Embperl would remove the unnecessary
  &lt;br&gt; tag and, therefore, make Perl happy. And if Perl is happy, we
  are all happy. 
  
  <P>
  It is not difficult to change this behavior, if you are the kind of person
  who codes HTML in an ascii editor (like vi or emacs).
  
  <P>
  If you use a high-level HTML editor, you shouldn't have any problems with
  input escaping, because the editor will, for example, write a '&lt;' as
  '&amp;lt;' in the HTML code. Embperl translates this back to '&lt;' and
  therefore it knows that this wasn't an HTML tag which should be removed.
  
  <P>
  Problems with input escaping only occur if you use an ascii editor. Then
  you will need to escape input (see the next section for details on how to
  do this). 
  
  <P>
  To see the exact steps taken by Embperl to process a Perl-laden document,
  please see the section <A HREF=".html#Inside_Embperl_How_the_embedde">Inside Embperl</A> in the Embperl documentation.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Ways_To_Escape_Input_">Ways To Escape Input:</A></H2>
  <OL>
  <LI><STRONG><A NAME="item_Escape_it_H1_">Escape it -&gt;  \&lt;H1&gt;</A></STRONG>
  <P>
  NOTE: Inside double quotes you will need to use \\ (double backslash),
  since Perl will remove the first Escape itself.
  
  <P>
  Example: In most cases '\&lt;tr&gt;' but inside double-quotes
  ``\\&lt;tr&gt;''
  
  <LI><STRONG><A NAME="item_Turn_off_Escaping_for_all_input_">Turn off Escaping for all input by setting the optRawInput in
  EMBPERL_OPTIONS</A></STRONG>
  <LI><STRONG><A NAME="item_Learn_to_avoid_using_HTML_tags_i">Learn to avoid using HTML tags inside Perl code. Once you get the hang
  of it, you'll love it.</A></STRONG>
  </OL>
  <P>
  Here is one example of how to do it:
  
  <P>
  <PRE>    [- $output = &quot;&lt;bold&gt;Hello world&lt;/bold&gt;&quot; -]
      [+ $output +]
  </PRE>
  <P>
  write
  
  <P>
  <PRE>    [- $output = &quot;Hello world&lt;bold&gt;&quot; -]
  </PRE>
  <P>
  this outputs 
  
  <P>
  <PRE>    Hello world
  </PRE>
  <P>
  or
  
  <P>
  <PRE>    &lt;bold&gt;[+ $output +]&lt;/bold&gt;
  </PRE>
  <P>
  this outputs
  
  <P>
  <PRE>    &lt;bold&gt;Hello world&lt;/bold&gt;
  </PRE>
  <P>
  And here is another example of how to do it:
  
  <P>
  <PRE>    [-
      @a = ('a', 'b', 'c') ;
      foreach $i (0..2)
          {
          $output. = &quot;&lt;tr&gt;&lt;td&gt;Row $a[$i]&lt;/td&gt;&lt;/tr&gt;&quot; ;
          }
      -]
      &lt;table&gt;
      [+ $output +]
      &lt;/table&gt;
  </PRE>
  <P>
  The output here would be:
  
  <P>
  <PRE>    &lt;table&gt;Row aRow bRow c&lt;/table&gt;
  </PRE>
  <P>
  The Embperl version is
  
  <P>
  <PRE>    [-
      @a = ('a', 'b', 'c') ;
      -]
      &lt;table&gt;
      &lt;tr&gt;&lt;td&gt;Row $a[$row]&lt;/td&gt;&lt;/tr&gt;&quot; ;
      &lt;/table&gt;
  </PRE>
  <P>
  The output will be
  
  <P>
  <PRE>    &lt;table&gt;
      &lt;tr&gt;&lt;td&gt;Row a&lt;/td&gt;&lt;/tr&gt;&quot; ;
      &lt;tr&gt;&lt;td&gt;Row b&lt;/td&gt;&lt;/tr&gt;&quot; ;
      &lt;tr&gt;&lt;td&gt;Row c&lt;/td&gt;&lt;/tr&gt;&quot; ;
      &lt;/table&gt;
  </PRE>
  <P>
  And another: This elegant solution shows you how to take advantage of
  Embperl's ability to create dynamic tables:
  
  <P>
  <PRE>    [-
      use DBI;
  </PRE>
  <P>
  <PRE>    my $dbh =
      DBI-&gt;connect(&quot;DBI:mysql:database:localhost&quot;,&quot;Username&quot;,&quot;Password&quot;) ||
      die($!);
  </PRE>
  <P>
  <PRE>    $hstmt = $dbh-&gt;prepare(&quot;select ID, Heading from Shops order by Heading&quot;);
      $hstmt-&gt;execute();
      $dat = $hstmt-&gt;fetchall_arrayref() ;
      $hstmt-&gt;finish();
      $dbh-&gt;disconnect();
      -]
      &lt;table border=1&gt;
      &lt;tr&gt;&lt;td&gt;[+ $$dat[$row][$col] +]&lt;/td&gt;&lt;/tr&gt;
      &lt;/table&gt;
  </PRE>
  <P>
  This HTML code will then display the contents of the whole array.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Escaping_Unescaping_Output">Escaping &amp; Unescaping Output</A></H2>
  <P>
  Embperl will also escape the output - so &lt;H1&gt; will be translated to
  &amp;lt;H1&amp;gt;
  
  <P>
  To see the exact steps taken by Embperl to process a Perl-laden document,
  please see <A HREF=".html#Inside_Embperl_How_the_embedde">Inside Embperl</A> in the Embperl documentation.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Ways_To_Escape_Output_">Ways To Escape Output:</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__Escape_it_H1_">) Escape it -&gt; \\&lt;H1&gt;</A></STRONG>
  <P>
  <PRE>    (You need a double backslash \\, because
      the first one is removed by Perl and the second by Embperl.
  </PRE>
  <LI><STRONG><A NAME="item__set_escmode_0_escmod">) set $escmode = 0 -&gt; [- $escmode = 0 ; -]</A></STRONG>
  <LI><STRONG><A NAME="item__set_SetEnv_EMBPERL_ESCMODE_0_i">) set SetEnv EMBPERL_ESCMODE 0 in your srm.conf</A></STRONG>
  </OL>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.3.html">PREV (Common Questions)</a>]&nbsp;&nbsp; [<a href="Faq.pod.5.html">NEXT (Debugging)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.5.html
  
  Index: Faq.pod.5.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.5</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Debugging">Debugging</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.4.html">PREV (Escaping & Unescaping)</a>]&nbsp;&nbsp; [<a href="Faq.pod.6.html">NEXT (Customizing)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.5.html#I_am_having_a_hard_time_debuggin">I am having a hard time debugging Embperl code</A>
  		<LI><A HREF="Faq.pod.5.html#Embperl_is_running_slow_">Embperl is running slow.</A>
  		<LI><A HREF="Faq.pod.5.html#How_can_I_improve_Embperl_s_perf">How can I improve Embperl's performance?</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_am_having_a_hard_time_debuggin">I am having a hard time debugging Embperl code</A></H2>
  <P>
  Have you, umm, checked the error log? ;)
  
  <P>
  Have you tried setting debug flags higher by resetting EMBPERL_DEBUG in the
  server config files? (And still higher? :)
  
  <P>
  dbgMem isn't usually very useful as it always outputs a lot of allocation.
  dbgFlushLog and dbgFlushOutput should be used if (and only if) you are
  debugging SIGSEGVs.
  
  <P>
  For easy debugging, you can tell Embperl to display a link at the top of
  each page to your log file. Then every error displayed in an error page is
  a link to the corresponding position in the logfile, so you can easily find
  the place where something is going wrong
  
  <P>
  For more on using HTML links to the Embperl error log, see 
  <A HREF=".html#EMBPERL_DEBUG">EMBPERL_DEBUG</A> in the Embperldocs.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Embperl_is_running_slow_">Embperl is running slow.</A></H2>
  <P>
  There are some debugging settings which may cause Embperl to drastically
  slow down. If you are done with debugging, set debugging bits back to
  normal.
  
  <P>
  Also, using dbgFlushLog and dbgFlushOutput will make execution much slower.
  These are only intended for debugging SIGSEGVs. 
  
  <P>
  Never set all debugging bits!
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_improve_Embperl_s_perf">How can I improve Embperl's performance?</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__Load_Embperl_at_server_startup">) Load Embperl at server startup. This will cause
      UNIX systems to only allocate memory once, and not
      for each child process. This reduces memory use,
      especially the need to swap additional memory.</A></STRONG>
  <LI><STRONG><A NAME="item__Disable_all_unneeded_debugging">) Disable all unneeded debugging flags. You should never set 
      dbgFlushLog dbgFlushOutput, dbgMem and dbgEvalNoCache in a
      production environment.</A></STRONG>
  </OL>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.4.html">PREV (Escaping & Unescaping)</a>]&nbsp;&nbsp; [<a href="Faq.pod.6.html">NEXT (Customizing)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.6.html
  
  Index: Faq.pod.6.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.6</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Customizing">Customizing</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.5.html">PREV (Debugging)</a>]&nbsp;&nbsp; [<a href="Faq.pod.7.html">NEXT (Optimizing & Fine-Tuning)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.6.html#How_can_I_fiddle_with_the_defaul">How can I fiddle with the default values?</A>
  		<LI><A HREF="Faq.pod.6.html#I_d_like_to_temporarily_disabl">I'd like to (temporarily) disable some of Embperl's features. </A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_disable_auto_tables_">How can I disable auto-tables?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_change_predefined_valu">How can I change predefined values like $escmode from my Toolbox module?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_customize_the_header_t">How can I customize the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_use_a_different_charac">How can I use a different character set?</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_fiddle_with_the_defaul">How can I fiddle with the default values?
  How can I override or alter this or that behavior?</A></H2>
  <P>
  Usually, defaults are set in a way that is likely to make most sense for a
  majority of users. As of version 1.0, Embperl allows much more flexibility
  in tweaking your own default values than before. 
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_d_like_to_temporarily_disabl">I'd like to (temporarily) disable some of Embperl's features. 
  What can be customized?</A></H2>
  <OL>
  <LI><STRONG><A NAME="item__Use_optDisableHtmlScan_to_disa">) Use optDisableHtmlScan to disable processing of html tags.
  If this is set, Embperl will only pay attention to these types of 
  constructs:</A></STRONG>
  <P>
  [+/-/!/$&nbsp;....&nbsp;$/!/-/+]
  
  
  
  <LI><STRONG><A NAME="item__optDisableTableScan_optDisabl">) optDisableTableScan, optDisableInputScan and optDisableMetaScan can be
  used to disable individual parts of HTML processing.</A></STRONG>
  <P>
  You may set these flags in your server config, or at runtime:
  
  <P>
  <PRE>    [+ $optDisableHtmlScan = 1 +]
      &lt;table&gt; foo &lt;/table&gt;
      [+ $optDisableHtmlScan = 0 +]
  </PRE>
  </OL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_disable_auto_tables_">How can I disable auto-tables?</A></H2>
  <P>
  Set optDisableTableScan in EMBPERL_OPTIONS
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_change_predefined_valu">How can I change predefined values like $escmode from my Toolbox module?</A></H2>
  <P>
  <PRE>    $HTML::Embperl::escmode = 0 ;
  </PRE>
  <P>
  Predefined values in Embperl are simply aliases for $HTML::Embperl::foo
  (for instance, <A HREF=".html#item__escmode">$escmode</A> is an alias for
  $HTML::Embperl::escmode)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_customize_the_header_t">How can I customize the header that Embperl is sending?</A></H2>
  <P>
  You'll find the answer to this and many other header issues in the <A HREF="Faq.pod.3.html#Common_Questions">Common Questions</A> section.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_use_a_different_charac">How can I use a different character set?
  ASCII values over 128 are showing up as ? (question marks)!</A></H2>
  <P>
  This is caused by the translation of characters to HTML escapes. Embperl
  translates them to escapes which are then sometimes not understood by the
  browser, which may display a ``?'' instead, because it is using the wrong
  character set.
  
  <P>
  If you want to use the escaping features of Embperl in this case, you have
  to adapt the file epchar.c to your character set. This file contains three
  tables:
  
  <P>
  Char2Html [] Convert characters to html escape
  
  <P>
  Char2Url [] Convert characters to url escapes (do not change this one!!)
  
  <P>
  Html2Char [] Convert html escapes to characters
  
  <P>
  You need to change the first and the last tables. Do not change the second
  table!!
  
  <P>
  Please make sure Char2Html contains one entry (and only one entry) for each
  of the 256 ascii codes (with none left undefined) in the right order, and
  that Html2Char is sorted by html escape.
  
  <P>
  If somebody generates new tables for national character sets, please send a
  copy to the author, so it can be included it in future versions of Embperl.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.5.html">PREV (Debugging)</a>]&nbsp;&nbsp; [<a href="Faq.pod.7.html">NEXT (Optimizing & Fine-Tuning)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.7.html
  
  Index: Faq.pod.7.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.7</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Optimizing_Fine_Tuning">Optimizing & Fine-Tuning</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.6.html">PREV (Customizing)</a>]&nbsp;&nbsp; [<a href="Faq.pod.8.html">NEXT (Additional Help)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.7.html#How_can_I_be_sure_that_Embperl_i">How can I be sure that Embperl is re-compiling my page template</A>
  		<LI><A HREF="Faq.pod.7.html#How_can_I_pre_compile_pages_so_">How can I pre-compile pages, so that each httpd child doesn't </A>
  		<LI><A HREF="Faq.pod.7.html#In_what_namespace_does_Embperl_s">In what namespace does Embperl store pre-compiled data?</A>
  		<LI><A HREF="Faq.pod.7.html#I_have_both_Embperl_and_ordinary">I have both Embperl and ordinary Perl processes running. The docs </A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_be_sure_that_Embperl_i">How can I be sure that Embperl is re-compiling my page template
  (and the Perl blocks contained in it) only when needed, and not each time?</A></H2>
  <P>
  As long as your input file's time stamp stays the same, Embperl will only
  compile the script the first time it's called. When you use the Execute
  function, Embperl will recompile the script only if the input file and
  mtime paramenters have changed since the last time the script was called.
  
  <P>
  You can verfiy this by setting dbgDefEval. Now, every time a Perl block is
  compiled, Embperl logs a line starting with DEF:. You will see this line
  only on the first request. The cached Perl blocks are stored as a set of
  subroutines in the namespace of the document.
  (HTML::Embperl::DOC::_&lt;n&gt; is the default) Look at the logfile to see
  the actual name. 
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_can_I_pre_compile_pages_so_">How can I pre-compile pages, so that each httpd child doesn't 
  have to have its own separate copies of the pre-compiled pages?</A></H2>
  <P>
  To pre-compile pages, just call Execute once for every file at server
  startup in your startup.pl file.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="In_what_namespace_does_Embperl_s">In what namespace does Embperl store pre-compiled data?</A></H2>
  <P>
  The cached Perl blocks are stored as a set of subroutines in the namespace
  of the document. (HTML::Embperl::DOC::_&lt;n&gt; for default) Look at the
  logfile to see the actual name.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="I_have_both_Embperl_and_ordinary">I have both Embperl and ordinary Perl processes running. The docs 
  say that Embperl uses a CGI.pm instance in its own internal processing,
  but they don't say how to control it. How can I get Embperl to use *my* 
  CGI.pm object instead of creating its own?</A></H2>
  <P>
  Embperl only creates a CGI objects to process multipart form data (from
  fileupload). In all other cases Embperl doesn't use CGI.pm
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.6.html">PREV (Customizing)</a>]&nbsp;&nbsp; [<a href="Faq.pod.8.html">NEXT (Additional Help)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.8.html
  
  Index: Faq.pod.8.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.8</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Additional_Help">Additional Help</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.7.html">PREV (Optimizing & Fine-Tuning)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Faq.pod.8.html#Where_can_I_get_more_help_">Where can I get more help?</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Where_can_I_get_more_help_">Where can I get more help?</A></H2>
  <P>
  You can get free support on the mod_perl mailing list. If you need
  commercial support (with a guarantee for response time or a solution) for
  Embperl, or if you want a web site where you can run your Embperl/mod_perl
  scripts without setting up your own web server, please send email to <A
  HREF="mailto:info@ecos.de.">info@ecos.de.</A>
  
  <P>
  Please also see the section <A HREF=".html#Support">Support</A> in the Embperl documentation.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.7.html">PREV (Optimizing & Fine-Tuning)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Faq.pod.cont.html
  
  Index: Faq.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Faq.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-Faq.pod.cont">FAQ - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.1.html">NEXT (Downloading, Compiling & Installing)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>Faq.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="Faq.pod.1.html#Downloading_Compiling_Install">Downloading, Compiling &amp; Installing</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.1.html#Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl?</A>
  		<LI><A HREF="Faq.pod.1.html#Is_there_a_binary_distribution_o">Is there a binary distribution of Embperl for Win32?</A>
  		<LI><A HREF="Faq.pod.1.html#I_want_to_run_Embperl_with_mod_p">I want to run Embperl with mod_perl under Apache. In what order should I</A>
  		<LI><A HREF="Faq.pod.1.html#I_m_getting_">I'm getting:</A>
  		<LI><A HREF="Faq.pod.1.html#I_m_trying_to_build_HTML_Embper">I'm trying to build HTML::Embperl, and while running 'make' i get:</A>
  		<LI><A HREF="Faq.pod.1.html#I_have_a_lot_of_errors_in_make_">I have a lot of errors in 'make test' from mod_perl when using Embperl</A>
  		<LI><A HREF="Faq.pod.1.html#Running_make_test_fails_with_a">Running 'make test' fails with an error message at loading of Embperl </A>
  		<LI><A HREF="Faq.pod.1.html#How_can_I_build_a_statically_lin">How can I build a statically-linked copy of Embperl with mod_perl </A>
  		<LI><A HREF="Faq.pod.1.html#How_do_I_load_Embperl_at_server_">How do I load Embperl at server startup?</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.2.html#Common_Problems">Common Problems</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.2.html#Why_doesn_t_the_following_line_w">Why doesn't the following line work?</A>
  		<LI><A HREF="Faq.pod.2.html#I_m_getting_Glob_not_terminate">I'm getting: &quot;Glob not terminated at ...&quot;</A>
  		<LI><A HREF="Faq.pod.2.html#My_HTML_is_getting_stripped_out_">My HTML is getting stripped out.</A>
  		<LI><A HREF="Faq.pod.2.html#I_am_using_optRawInput_and_my">I _am_ using optRawInput, and my HTML _is_ still being stripped out!</A>
  		<LI><A HREF="Faq.pod.2.html#Help_I_got_a_SIGSEGV_Ack_">Help! I got a SIGSEGV! Ack!</A>
  		<LI><A HREF="Faq.pod.2.html#I_am_having_troubles_with_using_">I am having troubles with using Embperl in combination with</A>
  		<LI><A HREF="Faq.pod.2.html#I_can_t_get_PerlSendHeader_to_wo">I can't get PerlSendHeader to work under Embperl?</A>
  		<LI><A HREF="Faq.pod.2.html#But_how_do_I_customize_the_heade">But how do I customize the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.2.html#I_can_t_figure_out_how_to_split_">I can't figure out how to split a 'while' statement across </A>
  		<LI><A HREF="Faq.pod.2.html#My_HTML_tags_like_and_">My HTML tags like '&lt;' '&gt;' and '&quot;' are being translated to &amp;lt;, &amp;gt; !!!</A>
  		<LI><A HREF="Faq.pod.2.html#Netscape_asks_to_reload_the_docu">Netscape asks to reload the document</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.3.html#Common_Questions">Common Questions</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.3.html#What_is_the_difference_between_E">What is the difference between Embperl and ePerl (and ASP, etc)?</A>
  		<LI><A HREF="Faq.pod.3.html#How_can_I_get_my_HTML_files_to_b">How can I get my HTML files to be converted into Perl code which, as a</A>
  		<LI><A HREF="Faq.pod.3.html#I_have_an_HTML_page_which_is_dyn">I have an HTML page which is dynamically generated at runtime </A>
  		<LI><A HREF="Faq.pod.3.html#How_can_I_customise_the_header_t">How can I customise the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_use_Embperl_to_send_cookie">Can I use Embperl to send cookies?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_do_REDIRECT_with_Embperl_">Can I do REDIRECT with Embperl?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_serve_random_GIFs_with_Emb">Can I serve random GIFs with Embperl?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_use_Embperl_as_a_template_">Can I use Embperl as a template for forms?</A>
  		<LI><A HREF="Faq.pod.3.html#Does_Embperl_automatically_add_H">Does Embperl automatically add HIDDEN fields?</A>
  		<LI><A HREF="Faq.pod.3.html#What_about_security_Is_Embperl_">What about security? Is Embperl Secure?</A>
  		<LI><A HREF="Faq.pod.3.html#Is_there_any_plan_to_make_Embper">Is there any plan to make Embperl an Object so someone could subclass it</A>
  		<LI><A HREF="Faq.pod.3.html#Are_Embperl_routines_currently_p">Are Embperl routines currently pre-compiled or even cached, or are only</A>
  		<LI><A HREF="Faq.pod.3.html#Why_are_Perl_blocks_broken_up_in">Why are Perl blocks broken up into single subroutines?</A>
  		<LI><A HREF="Faq.pod.3.html#Can_I_pass_QUERY_STRING_informat">Can I pass QUERY_STRING information to an HTML::Embperl::Execute call?</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.4.html#Escaping_Unescaping">Escaping &amp; Unescaping</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.4.html#Escaping_Unescaping_Input">Escaping &amp; Unescaping Input</A>
  		<LI><A HREF="Faq.pod.4.html#Ways_To_Escape_Input_">Ways To Escape Input:</A>
  		<LI><A HREF="Faq.pod.4.html#Escaping_Unescaping_Output">Escaping &amp; Unescaping Output</A>
  		<LI><A HREF="Faq.pod.4.html#Ways_To_Escape_Output_">Ways To Escape Output:</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.5.html#Debugging">Debugging</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.5.html#I_am_having_a_hard_time_debuggin">I am having a hard time debugging Embperl code</A>
  		<LI><A HREF="Faq.pod.5.html#Embperl_is_running_slow_">Embperl is running slow.</A>
  		<LI><A HREF="Faq.pod.5.html#How_can_I_improve_Embperl_s_perf">How can I improve Embperl's performance?</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.6.html#Customizing">Customizing</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.6.html#How_can_I_fiddle_with_the_defaul">How can I fiddle with the default values?</A>
  		<LI><A HREF="Faq.pod.6.html#I_d_like_to_temporarily_disabl">I'd like to (temporarily) disable some of Embperl's features. </A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_disable_auto_tables_">How can I disable auto-tables?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_change_predefined_valu">How can I change predefined values like $escmode from my Toolbox module?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_customize_the_header_t">How can I customize the header that Embperl is sending?</A>
  		<LI><A HREF="Faq.pod.6.html#How_can_I_use_a_different_charac">How can I use a different character set?</A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.7.html#Optimizing_Fine_Tuning">Optimizing &amp; Fine-Tuning</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.7.html#How_can_I_be_sure_that_Embperl_i">How can I be sure that Embperl is re-compiling my page template</A>
  		<LI><A HREF="Faq.pod.7.html#How_can_I_pre_compile_pages_so_">How can I pre-compile pages, so that each httpd child doesn't </A>
  		<LI><A HREF="Faq.pod.7.html#In_what_namespace_does_Embperl_s">In what namespace does Embperl store pre-compiled data?</A>
  		<LI><A HREF="Faq.pod.7.html#I_have_both_Embperl_and_ordinary">I have both Embperl and ordinary Perl processes running. The docs </A>
  	</UL>
  
  	<LI><A HREF="Faq.pod.8.html#Additional_Help">Additional Help</A>
  	<UL>
  
  		<LI><A HREF="Faq.pod.8.html#Where_can_I_get_more_help_">Where can I get more help?</A>
  	</UL>
  
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Faq.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Faq.pod.1.html">NEXT (Downloading, Compiling & Installing)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/INSTALL.pod.1.html
  
  Index: INSTALL.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>INSTALL.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="INSTALLATION">INSTALLATION</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">PREV (Installation - Content)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="INSTALL.pod.1.html#UNIX">UNIX</A>
  		<LI><A HREF="INSTALL.pod.1.html#WIN_32">WIN 32</A>
  		<LI><A HREF="INSTALL.pod.1.html#Further_Documentation">Further Documentation</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="UNIX">UNIX</A></H2>
  <P>
  - <STRONG>Unpack the archive</STRONG>
  
  
  
  <P>
  - <STRONG>perl Makefile.PL</STRONG>
  
  
  
  <P>
  You will be asked if you want to compile in support for Apache mod_perl. If
  you say yes, the source of Apache is searched (for headerfiles). If it
  can't found, please specify the basepath. Please make sure mod_perl is
  already installed. If you have installed mod_perl-0.96 or higher,
  Makefile.PL automatically suggests the same source path as was used to
  build mod_perl.
  
  <P>
  - <STRONG>make</STRONG>
  
  
  
  <P>
  - <STRONG>make test</STRONG>
  
  
  
  <P>
  - <STRONG>make install</STRONG>
  
  
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="WIN_32">WIN 32</A></H2>
  <P>
  I have tested the offline mode on Windows 95 with a Microsoft Visual C++
  4.2 compiler and I have succesfully run Embperl with apache_1.3b5-1.3.1 /
  mod_perl-1.12-1.14 / perl5.004_04-perl5.005 (without threads) on Windows NT
  with VC++ 5.0. 
  
  <P>
  <STRONG>NOTE:</STRONG> It was necessary for me to compile perl5.004_04 with the VC++ on my own to
  get it to run with Apache and mod_perl, while I was able to use the binary
  distribution (/authors/id/GSAR/perl5.00402-bindist04-bc.tar.gz) of Perl for
  offline testing under Win 95.
  
  <P>
  <STRONG>NOTE:</STRONG> If you use mod_perl &lt;= 1.11 you should apply the win32.patch, otherwise
  you will get a deadlock. 
  
  <P>
  On Windows 95/NT you have to do the following:
  
  <P>
  <STRONG>perl Makefile.PL</STRONG>
  
  
  
  <P>
  <STRONG>nmake</STRONG> (you must have the c compiler in your path)
  
  <P>
  you will get an error about compiling Embperl.c. Edit Embperl.c and change
  
  <P>
  -#line ``Embperl.xs''
  
  <P>
  to
  
  <P>
  +#line 1 ``Embperl.xs''
  
  <P>
  now re-run nmake and it should compile.
  
  <P>
  <STRONG>nmake test</STRONG>
  
  
  
  <P>
  <STRONG>NOTE:</STRONG> nmake test needs libwin32, libwww and HTML::Parser installed to work
  
  <P>
  <STRONG>nmake install</STRONG>
  
  
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Further_Documentation">Further Documentation</A></H2>
  <P>
  See <A HREF="Intro.pod.cont.html">"perldoc Intro"</A> for an step by step introduction to Embperl.
  
  <P>
  See <A HREF="Embperl.pod.cont.html">"perldoc Embperl"</A> for complete documentation.
  
  <P>
  See the <A HREF="Examples.html">"eg/"</A> directory for examples.
  
  <P>
  See <A HREF="Faq.pod.cont.html">"perldoc Faq"</A> for Frequently Asked Questions.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">PREV (Installation - Content)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/INSTALL.pod.cont.html
  
  Index: INSTALL.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>INSTALL.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-INSTALL.pod.cont">Installation - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.1.html">NEXT (INSTALLATION)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>INSTALL.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="INSTALL.pod.1.html#INSTALLATION">INSTALLATION</A>
  	<UL>
  
  		<LI><A HREF="INSTALL.pod.1.html#UNIX">UNIX</A>
  		<LI><A HREF="INSTALL.pod.1.html#WIN_32">WIN 32</A>
  		<LI><A HREF="INSTALL.pod.1.html#Further_Documentation">Further Documentation</A>
  	</UL>
  
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="INSTALL.pod.1.html">NEXT (INSTALLATION)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/Intro.pod.1.html
  
  Index: Intro.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="What_is_Embperl_">What is Embperl?</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">PREV (Introduction - Content)</a>]&nbsp;&nbsp; [<a href="Intro.pod.2.html">NEXT (Embed Perl Code in HTML Documents)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.2.html#Embed_Perl_Code_in_HTML_Document">Embed Perl Code in HTML Documents</A>
  		<LI><A HREF="Intro.pod.1.html#How_does_it_compare_to_ASP_PHP_">How does it compare to ASP, PHP, ePerl?</A>
  		<LI><A HREF="Intro.pod.1.html#Additional_HTML_features">Additional HTML features</A>
  		<LI><A HREF="Intro.pod.1.html#Integration_with_Apache_and_mod_">Integration with Apache and mod_perl</A>
  		<LI><A HREF="Intro.pod.1.html#For_Usage_With_High_Level_HTML_E">For Usage With High Level HTML Editor</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Embed_Perl_Code_in_HTML_Document">Embed Perl Code in HTML Documents</A></H2>
  <P>
  The main purpose of HTML::Embperl is to embed Perl code in HTML documents.
  While Embperl can also be used with non-HTML documents, it has several
  features that are specifically for HTML.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="How_does_it_compare_to_ASP_PHP_">How does it compare to ASP, PHP, ePerl?</A></H2>
  <P>
  Embperl is not the only processor for embedded Perl code. ASP used with
  ActiveState Perl port provides this for Microsoft IIS, and ePerl is a
  solution which does this job very well for all sorts of ASCII files. There
  are other Perl solutions around as well. PHP is a well-known solution for
  easily building web pages with embedded code and database connections, but
  it's not Perl.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Additional_HTML_features">Additional HTML features</A></H2>
  <P>
  The main advantage of Embperl is the built-in HTML awareness. It provides
  features for handling form data and HTML tables, along with converting log
  files and error pages to HTML and linking them together. It also allows for
  escaping and unescaping.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Integration_with_Apache_and_mod_">Integration with Apache and mod_perl</A></H2>
  <P>
  Embperl can be used offline (as a normal CGI script or as a module from
  other Perl code), but its real power comes when running under mod_perl and
  Apache. It's directly integrated with Apache and mod_perl to achieve the
  best performance by directly using Apache functions and precompiling your
  code to avoid a recompile on every request.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="For_Usage_With_High_Level_HTML_E">For Usage With High Level HTML Editor</A></H2>
  <P>
  Embperl was designed to be used with a high-level HTML editor. The Perl
  code can be entered as normal text (the editor need not know any special
  HTML tags nor is it necessary to enter special HTML tags via uncomfortable
  dialogs); just enter your code as if it were normal text. Embperl takes
  care of unescaping the HTML codes and eliminates unwanted HTML tags (like
  &lt;BR&gt;) which are entered into your Perl code by the editor (e.g.
  because you like to have a line break for better readability).
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">PREV (Introduction - Content)</a>]&nbsp;&nbsp; [<a href="Intro.pod.2.html">NEXT (Embed Perl Code in HTML Documents)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.2.html
  
  Index: Intro.pod.2.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.2</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Embed_Perl_Code_in_HTML_Document">Embed Perl Code in HTML Documents</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.1.html">PREV (What is Embperl?)</a>]&nbsp;&nbsp; [<a href="Intro.pod.3.html">NEXT (Dynamic Tables)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.2.html#1_Execute_code">1.)    [- ... -]    Execute code</A>
  		<LI><A HREF="Intro.pod.2.html#2_Output_the_result">2.)    [+ ... +]Output the result</A>
  		<LI><A HREF="Intro.pod.2.html#3_Execute_code_once">3.)    [! ... !]    Execute code once</A>
  		<LI><A HREF="Intro.pod.2.html#Meta_Commands">Meta-Commands</A>
  		<UL>
  
  			<LI><A HREF="Intro.pod.2.html#if_elsif_else_endif">if, elsif, else, endif</A>
  			<LI><A HREF="Intro.pod.2.html#while_endwhile">while, endwhile</A>
  			<LI><A HREF="Intro.pod.2.html#do_until">do, until</A>
  			<LI><A HREF="Intro.pod.2.html#foreach_endforeach">foreach, endforeach</A>
  			<LI><A HREF="Intro.pod.2.html#var_var1_var2_">var &lt;var1&gt; &lt;var2&gt; ...</A>
  			<LI><A HREF="Intro.pod.2.html#hidden">hidden</A>
  		</UL>
  
  	</UL>
  <hr>
  <P>
  Perl code can be embedded in three ways:
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="1_Execute_code">1.)    [- ... -]    Execute code</A></H2>
  <P>
  <PRE>    [- $a = 5 -]  [- $b = 6 if ($a == 5) -]
  </PRE>
  <P>
  The code between the [- and the -] is executed. No output will be
  generated. This is mainly for assignments, function calls, database
  queries, etc.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="2_Output_the_result">2.)    [+ ... +]Output the result</A></H2>
  <P>
  <PRE>    [+ $a +]  [+ $array[$b] +] [+ &quot;A is $a&quot; +]
  </PRE>
  <P>
  The code between the [+ and the +] is executed and the return value (the
  value of the last expression evaluated) is output (sent to the browser).
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="3_Execute_code_once">3.)    [! ... !]    Execute code once</A></H2>
  <P>
  <PRE>    [! sub foo { my ($a, $b) = @_ ; $a * $b + 7 } !]
  </PRE>
  <P>
  Same as [- ... -], but the code is only executed for the first request.
  This is mainly for function definitions and one-time initialization.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Meta_Commands">Meta-Commands</A></H2>
  <P>
  Embperl support some meta commands to control the ``program flow'' within
  the Embperl document. This can be compared to preprocessor commands in C.
  The meta commands take the following form:
  
  <P>
  <PRE>    [$ &lt;cmd&gt; &lt;arg&gt; $]
  </PRE>
  <P>
  <HR>
  <H3><A NAME="if_elsif_else_endif">if, elsif, else, endif</A></H3>
  <P>
  The if command is just the same as in Perl. It is used to conditionally
  output/process parts of the document. Example:
  
  <P>
  <PRE> [$ if $ENV{REQUEST_METHOD} eq 'GET' $]
      This is a GET request
   [$ elsif $ENV{REQUEST_METHOD} eq 'POST' $]
      This is a POST request
   [$ else $]
      This is not GET and not POST
   [$ endif $]
  </PRE>
  <P>
  This will output one of the three lines depending on the setting of
  $ENV{REQUEST_METHOD}.
  
  <P>
  <HR>
  <H3><A NAME="while_endwhile">while, endwhile</A></H3>
  <P>
  The while command can be used to create a loop in the HTML document. For
  example:
  
  <P>
  <PRE> [$ while ($k, $v) = each (%ENV) $]
      [+ $k +] = [+ $v +] &lt;BR&gt;
   [$ endwhile $]
  </PRE>
  <P>
  The above example will display all environment variables, each terminated
  with a line break.
  
  <P>
  <HR>
  <H3><A NAME="do_until">do, until</A></H3>
  <P>
  The do until also create a loop, but with a condition at the end. For
  example:
  
  <P>
  <PRE> [- @arr = (3, 5, 7); $i = 0 -]
   [$ do $]
      [+ $arr[ $i++ ] +]
   [$ until $i &gt; $#arr $]
  </PRE>
  <P>
  <HR>
  <H3><A NAME="foreach_endforeach">foreach, endforeach</A></H3>
  <P>
  Create a loop iterating over every element of an array/list. Example:
  
  <P>
  <PRE> [$ foreach $v (1..10) $]
      [+ $v +]
   [$ endforeach $]
  </PRE>
  <P>
  <HR>
  <H3><A NAME="var_var1_var2_">var &lt;var1&gt; &lt;var2&gt; ...</A></H3>
  <P>
  By default, you do not need to declare any variables you use within an
  Embperl page. Embperl takes care of deleting them at the end of each
  request. Sometimes, though, you want to declare them explicitly. You can do
  this by using var:
  
  <P>
  <PRE> [$ var $a @b %c $]
  </PRE>
  <P>
  Has the same effect as the Perl code:
  
  <P>
  <PRE> use strict ;use vars qw {$a @b %c} ;
  </PRE>
  <P>
  <HR>
  <H3><A NAME="hidden">hidden</A></H3>
  <P>
  hidden is used for creating hidden form fields and is described in the form
  field section below.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.1.html">PREV (What is Embperl?)</a>]&nbsp;&nbsp; [<a href="Intro.pod.3.html">NEXT (Dynamic Tables)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.3.html
  
  Index: Intro.pod.3.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.3</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Dynamic_Tables">Dynamic Tables</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.2.html">PREV (Embed Perl Code in HTML Documents)</a>]&nbsp;&nbsp; [<a href="Intro.pod.4.html">NEXT (Form fields)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.3.html#Display_a_Perl_Array">Display a Perl Array</A>
  		<LI><A HREF="Intro.pod.3.html#Simple_DBI_Example">Simple DBI Example</A>
  	</UL>
  <hr>
  <P>
  A very powerful feature of Embperl is the processing of dynamic tables.
  This feature was designed mainly to display Perl arrays (one or two
  dimensional, regular and irregular), but can also be used in other ways.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Display_a_Perl_Array">Display a Perl Array</A></H2>
  <P>
  <PRE> [- @a = ( 'A', 'B', 'C') ; -]
   &lt;TABLE BORDER=1&gt;
     &lt;TR&gt;
          &lt;TD&gt; [+ $a[$row] +] &lt;/TD&gt;
     &lt;/TR&gt;
   &lt;/TABLE&gt;
  </PRE>
  <P>
  The above example simply displays a table with three rows containing A, B
  and C.
  
  <P>
  The trick is done by using the magical variable <CODE>$row</CODE> which
  contains the row count and is incremented for every row. The table ends if
  the expression which contains <CODE>$row</CODE> returns &lt;undef&gt;. The
  same can be done with <CODE>$col</CODE> for columns and <CODE>$cnt</CODE>
  can be used if you need a table which wraps after a certain number of
  elements.
  
  <P>
  This works with table/select/menu/ol/dl/dir
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Simple_DBI_Example">Simple DBI Example</A></H2>
  <P>
  Here is a simple DBI example that displays the result of a query as a two
  dimension table, with field names as headings in the first row:
  
  <P>
  <PRE> [-
   # connect to database
    $dbh = DBI-&gt;connect($DSN) ;
  </PRE>
  <P>
  <PRE> # prepare the sql select
   $sth = $dbh -&gt; prepare (&quot;SELECT * from $table&quot;) ;
  </PRE>
  <P>
  <PRE> # excute the query
   $sth -&gt; execute ;
  </PRE>
  <P>
  <PRE> # get the fieldnames for the heading in $head
   $head = $sth -&gt; {NAME} ;
  </PRE>
  <P>
  <PRE> #continues on the next page...
   # get the result in $dat $dat = $sth -&gt; fetchall_arrayref ;
   -]
  </PRE>
  <P>
  <PRE> &lt;table&gt;
      &lt;tr&gt;&lt;th&gt;[+ $head-&gt;[$col] +]&lt;/th&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;[+ $dat -&gt; [$row][$col] +]&lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt;
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.2.html">PREV (Embed Perl Code in HTML Documents)</a>]&nbsp;&nbsp; [<a href="Intro.pod.4.html">NEXT (Form fields)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.4.html
  
  Index: Intro.pod.4.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.4</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Form_fields">Form fields</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.3.html">PREV (Dynamic Tables)</a>]&nbsp;&nbsp; [<a href="Intro.pod.5.html">NEXT (Debugging)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.4.html#Posted_form_data_available_in_f">Posted form data available in %fdat/@ffld</A>
  		<LI><A HREF="Intro.pod.4.html#Input_Textarea_Select_tags_take_">Input/Textarea/Select tags take values from %fdat</A>
  		<LI><A HREF="Intro.pod.4.html#_hidden_">[$ hidden $]</A>
  		<LI><A HREF="Intro.pod.4.html#A_simple_Text_input_Confirmati">A simple Text input / Confirmation form</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Posted_form_data_available_in_f">Posted form data available in %fdat/@ffld</A></H2>
  <P>
  The hash <CODE>%fdat</CODE> contains all values of form fields. The array
  <A HREF=".html#item__ffld">@ffld</A> contains the names in the order in which
  they were submitted.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Input_Textarea_Select_tags_take_">Input/Textarea/Select tags take values from %fdat</A></H2>
  <P>
  If you do not specify a default value for an input tag and a value for that
  input tag is available in %fdat, Embperl will automatically insert this
  value and send it to the browser. This is similar to the behavior of
  CGI.pm. This means that if you post a form to itself, the browser will
  display the values you just entered.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="_hidden_">[$ hidden $]</A></H2>
  <P>
  [$ hidden $] creates hidden form fields for all fields not in another input
  field. This can be used to transport data through confirmation forms. (For
  example, a wizard.)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="A_simple_Text_input_Confirmati">A simple Text input / Confirmation form</A></H2>
  <P>
  The following example shows many of the possibilities of Embperl. It's a
  simple form where you can enter your name, your email address and a
  message. If you hit the send button, you see the data you just entered and
  can confirm the information by hitting the ``send via mail'' button, or you
  can go back to the input form to change the data. If you confirm your
  input, the data will be sent to a predefined e-mail address. The example
  also shows how you can implement error checking--if you miss your name or
  your e- mail address, you will get a corresponding error message and the
  input form is shown again.
  
  <P>
  The first part is the error checking; the second part the confirmation
  form; the third part sends the mail if the input was ok and is confirmed;
  the last part is the input form itself.
  
  <P>
  Depending on the values of $fdat{check}, $fdat{send} and if $fdat{name} and
  $fdat{email} contains data, the document decides which part to show.
  
  <P>
  <PRE> [-  $MailTo = 'richter\@ecos.de' ;
  </PRE>
  <P>
  <PRE>  @errors = () ;
    if (defined($fdat{check}) || defined($fdat{send}))
      {
      push @errors, &quot;**Please enter your name&quot; if (!$fdat{name}) ;
      push @errors, &quot;**Please enter your e-mail address&quot; if (!$fdat{email}) ;
      }
   -]
  </PRE>
  <P>
  <PRE> [$if (defined($fdat{check}) and $#errors == -1)$]
   [-
    delete $fdat{input} ;
    delete $fdat{check} ;
    delete $fdat{send}
   -]
  </PRE>
  <P>
  <PRE> &lt;hr&gt;&lt;h3&gt; You have entered the following data:&lt;/h3&gt;
   &lt;table&gt;
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{name}+]&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;E-Mail&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{email}+]&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{msg}+]&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td align=&quot;center&quot; colspan=&quot;2&quot;&gt;
       &lt;form action=&quot;input.htm&quot; method=&quot;GET&quot;&gt;
         &lt;input type=&quot;submit&quot; name=&quot;send&quot;
                value=&quot;Send to [+ $MailTo +]&quot;&gt;
         &lt;input type=&quot;submit&quot; name=&quot;input&quot; value=&quot;Change your data&quot;&gt;
         [$hidden$]
      &lt;/form&gt;
      &lt;/td&gt;&lt;/tr&gt;
   &lt;/table&gt;
  </PRE>
  <P>
  <PRE> [$elsif defined($fdat{send}) and $#errors == -1$]
  </PRE>
  <P>
  <PRE> [- MailFormTo ($MailTo,'Formdata','email') -]
   &lt;hr&gt;&lt;h3&gt;Your input has been sent&lt;/h3&gt;
  </PRE>
  <P>
  <PRE> [$else$]
  </PRE>
  <P>
  <PRE> &lt;hr&gt;&lt;h3&gt;Please enter your data&lt;/h3&gt;
  </PRE>
  <P>
  <PRE> &lt;form action=&quot;input.htm&quot; method=&quot;GET&quot;&gt;
    &lt;table&gt;
      [$if $#errors != -1 $]
        &lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;
        &lt;table&gt;
      &lt;tr&gt;&lt;td&gt;[+$errors[$row]+]&lt;/td&gt;&lt;/tr&gt;
        &lt;/table&gt;
        &lt;/td&gt;&lt;/tr&gt;
      [$endif$]
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot;
                                          name=&quot;name&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;E-Mail&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot;
                                            name=&quot;email&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type=&quot;text&quot;
                                             name=&quot;msg&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
      &lt;tr&gt;&lt;td colspan=2&gt;&lt;input type=&quot;submit&quot;
                               name=&quot;check&quot; value=&quot;Send&quot;&gt;&lt;/td&gt;&lt;/tr&gt;  &lt;/table&gt;
   &lt;/form&gt;
  </PRE>
  <P>
  <PRE> [$endif$]
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.3.html">PREV (Dynamic Tables)</a>]&nbsp;&nbsp; [<a href="Intro.pod.5.html">NEXT (Debugging)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.5.html
  
  Index: Intro.pod.5.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.5</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Debugging">Debugging</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.4.html">PREV (Form fields)</a>]&nbsp;&nbsp; [<a href="Intro.pod.6.html">NEXT (Database access)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.5.html#Embperl_log_file">Embperl log file</A>
  		<LI><A HREF="Intro.pod.5.html#Embperl_log_file_can_be_viewed_v">Embperl log file can be viewed via the browser</A>
  		<LI><A HREF="Intro.pod.5.html#Embperl_error_page_contains_link">Embperl error page contains links to the log file</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Embperl_log_file">Embperl log file</A></H2>
  <P>
  The log file is the main source for debugging. It shows you what Embperl
  does while it processes your page. Depending on the debug flag settings,
  Embperl logs the following things:
  
  <DL>
  <DT><STRONG><A NAME="item_Source">Source</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Environment">Environment</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Form">Form data</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Evals">Evals (Source + Result)</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Table">Table processing</A></STRONG><DD>
  <DT><STRONG><A NAME="item_Input">Input tag processing</A></STRONG><DD>
  <DT><STRONG><A NAME="item_HTTP">HTTP headers</A></STRONG><DD>
  </DL>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Embperl_log_file_can_be_viewed_v">Embperl log file can be viewed via the browser</A></H2>
  <P>
  For debugging, you can tell Embperl to display a link at the top of each
  page to your log file. If you follow the link, Embperl will show the
  portion of the log file corresponding to that request. The log file lines
  are displayed in different colors to give a better overview.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Embperl_error_page_contains_link">Embperl error page contains links to the log file</A></H2>
  <P>
  If you have enabled links to the log file, every error displayed in an
  error page is a link to the corresponding position in the logfile, so you
  can easily find the place where something is going wrong.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.4.html">PREV (Form fields)</a>]&nbsp;&nbsp; [<a href="Intro.pod.6.html">NEXT (Database access)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.6.html
  
  Index: Intro.pod.6.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.6</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Database_access">Database access</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.5.html">PREV (Debugging)</a>]&nbsp;&nbsp; [<a href="Intro.pod.7.html">NEXT (Security)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.6.html#Plain_DBI">Plain DBI</A>
  		<LI><A HREF="Intro.pod.6.html#DBIx_Recordset">DBIx::Recordset</A>
  		<LI><A HREF="Intro.pod.6.html#Search_Example">Search Example</A>
  		<LI><A HREF="Intro.pod.6.html#Search_sets_up_a_Recordset_objec">Search sets up a Recordset object</A>
  		<LI><A HREF="Intro.pod.6.html#Fields_can_be_accessed_by_name">Fields can be accessed by name</A>
  		<LI><A HREF="Intro.pod.6.html#PrevNextForm_generates_no_one_tw">PrevNextForm generates no/one/two buttons depending if</A>
  		<LI><A HREF="Intro.pod.6.html#As_for_Search_there_are_methods_">As for Search there are methods for Insert/Update/Delete</A>
  		<LI><A HREF="Intro.pod.6.html#Database_table_can_also_tied_to_">Database table can also tied to a hash</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Plain_DBI">Plain DBI</A></H2>
  <P>
  This is another example of using plain DBI within Embperl. In opposition to
  the <A HREF="Intro.pod.3.html#Simple_DBI_Example">example</A> I gave in the chapter about dynamic tables, this example works with
  explicit loops.
  
  <P>
  <PRE> [-
   # connect to database
   $dbh = DBI-&gt;connect($DSN) ;
   # prepare the sql select
   $sth = $dbh -&gt; prepare (&quot;SELECT * from $table&quot;) ;
  </PRE>
  <P>
  <PRE> # excute the query
   $sth -&gt; execute ;
  </PRE>
  <P>
  <PRE> # get the fieldnames for the heading in $head
   $head = $sth -&gt; {NAME} ;
   -]
  </PRE>
  <P>
  <PRE> &lt;table&gt;
      &lt;tr&gt;
      [$ foreach $h @$head $]
          &lt;th&gt;[+ $h +]&lt;/th&gt;
      [$ endforeach $]
      &lt;/tr&gt;
      [$ while $dat = $sth -&gt; fetchrow_arrayref $]
          &lt;tr&gt;
              [$ foreach $v @$dat $]
                  &lt;td&gt;[+ $v +]&lt;/td&gt;
              [$ endforeach $]   
          &lt;/tr&gt;
      [$ endwhile $]
   &lt;/table&gt;
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="DBIx_Recordset">DBIx::Recordset</A></H2>
  <P>
  DBIx::Recordset is a module for easy database access.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Search_Example">Search Example</A></H2>
  <P>
  <PRE> [-*set = DBIx::Recordset -&gt; Search ({%fdat,
                                       ('!DataSource'   =&gt; $DSN,
                                        '!Table' =&gt; $table,
                                        '$max'   =&gt; 5,)}) ; -]
   &lt;table&gt;
    &lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;NAME&lt;/th&gt;&lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;[+ $set[$row]{id} +]&lt;/td&gt;
      &lt;td&gt;[+ $set[$row]{name} +]&lt;/td&gt;
    &lt;/tr&gt;
   &lt;/table&gt;
   [+ $set -&gt; PrevNextForm ('Previous Records',
                            'Next Records',
                            \%fdat) +]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Search_sets_up_a_Recordset_objec">Search sets up a Recordset object</A></H2>
  <P>
  Search will take the values from <CODE>%fdat</CODE> and use them to build a
  SQL WHERE expression. This way, what you search for depends on what is
  posted to the document. For example, if you request the document with <A
  HREF="http://host/mydoc.html?id=5">http://host/mydoc.html?id=5</A> the
  above example will display all database records where the field 'id'
  contains the value 5. =head2 Data can accessed as array or via the current
  record The result of the query can be accessed as an array (this does not
  mean that the whole array is actually fetched from the database).
  Alternative, you can directly access the current record just by accessing
  the fields.
  
  <P>
  <PRE>    set[5]{id}   access the field 'id' of the sixth found record
      set{id}      access the field 'id' of the current record
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Fields_can_be_accessed_by_name">Fields can be accessed by name</A></H2>
  <P>
  While normal DBI let you access your data by column numbers,
  DBIx::Recordset uses the field names. This makes your program easier to
  write, more verbose and independent of database changes.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="PrevNextForm_generates_no_one_tw">PrevNextForm generates no/one/two buttons depending if
  there are more records to display</A></H2>
  <P>
  The PrevNextButtons function can be used to generate button for showing the
  previous record or the next records. PrevNextButton generates a small form
  and includes all necessary data as hidden fields. To get it to work, it's
  enough to feed this data to the next request to Search.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="As_for_Search_there_are_methods_">As for Search there are methods for Insert/Update/Delete</A></H2>
  <P>
  Example for Insert
  
  <P>
  If <CODE>%fdat</CODE> contains the data for the new record, the following
  code will insert a new record into the database.
  
  <P>
  <PRE> [-*set = DBIx::Recordset -&gt; Insert ({%fdat,
                                        ('!DataSource'   =&gt; $DSN,
                                         '!Table' =&gt; $table)}) ; -]
  </PRE>
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Database_table_can_also_tied_to_">Database table can also tied to a hash</A></H2>
  <P>
  DBIx::Recordset can also tie a database table to a hash. You need to
  specify a primary key for the table, which is used as key in the hash.
  
  <P>
  <PRE>    $set{5}{name}    access the name with the id=5
                       (id is primary key)
  </PRE>
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.5.html">PREV (Debugging)</a>]&nbsp;&nbsp; [<a href="Intro.pod.7.html">NEXT (Security)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.7.html
  
  Index: Intro.pod.7.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.7</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Security">Security</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.6.html">PREV (Database access)</a>]&nbsp;&nbsp; [<a href="Intro.pod.8.html">NEXT (Escaping/Unescaping)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.7.html#Safe_namespaces">Safe namespaces</A>
  		<LI><A HREF="Intro.pod.7.html#Operator_restrictions">Operator restrictions</A>
  	</UL>
  <hr>
  <P>
  When running under mod_perl, all Perl code shares the same interpreter.
  This means that every application can access data from every other
  application. Embperl maintains a separate namespace for every document,
  which is enough to avoid accidentally overwriting other applications data,
  but there is no real security. You can access anything you like if you
  explicitly specify a package name.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Safe_namespaces">Safe namespaces</A></H2>
  <P>
  Therefore, Embperl incorporates Safe.pm, which will make it impossible to
  access any packages other than your own. This can be used, for example, to
  calculate something in a Perl module and then pass the results to an
  Embperl document. If the Embperl document runs in a safe namespace, it can
  access the data it has received from the browser, but can't access outside
  itself. Therefore, it's safe to let different people create the layouts for
  Embperl pages.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Operator_restrictions">Operator restrictions</A></H2>
  <P>
  Safe.pm also permits the administrator to disable every Perl opcode. If you
  use this, you are able to decide which Perl opcodes are permitted to be
  used by the page creators.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.6.html">PREV (Database access)</a>]&nbsp;&nbsp; [<a href="Intro.pod.8.html">NEXT (Escaping/Unescaping)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.8.html
  
  Index: Intro.pod.8.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.8</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Escaping_Unescaping">Escaping/Unescaping</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.7.html">PREV (Security)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Intro.pod.8.html#Input_unescaping">Input: unescaping</A>
  		<LI><A HREF="Intro.pod.8.html#Output_escaping">Output: escaping</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Input_unescaping">Input: unescaping</A></H2>
  <P>
  (disable via optRawInput)
  
  <P>
  - convert HTML escapes to characters (e.g. &amp;lt; to &lt;) - remove HTML
  tags from Perl code (e.g. &lt;br&gt; insert by high level editor)
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Output_escaping">Output: escaping</A></H2>
  <P>
  (disable via escmode) convert special characters to HTML (e.g. &lt; to
  &amp;lt;)
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.7.html">PREV (Security)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Intro.pod.cont.html
  
  Index: Intro.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Intro.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-Intro.pod.cont">Introduction - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.1.html">NEXT (What is Embperl?)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>Intro.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="Intro.pod.1.html#What_is_Embperl_">What is Embperl?</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.2.html#Embed_Perl_Code_in_HTML_Document">Embed Perl Code in HTML Documents</A>
  		<LI><A HREF="Intro.pod.1.html#How_does_it_compare_to_ASP_PHP_">How does it compare to ASP, PHP, ePerl?</A>
  		<LI><A HREF="Intro.pod.1.html#Additional_HTML_features">Additional HTML features</A>
  		<LI><A HREF="Intro.pod.1.html#Integration_with_Apache_and_mod_">Integration with Apache and mod_perl</A>
  		<LI><A HREF="Intro.pod.1.html#For_Usage_With_High_Level_HTML_E">For Usage With High Level HTML Editor</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.2.html#Embed_Perl_Code_in_HTML_Document">Embed Perl Code in HTML Documents</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.2.html#1_Execute_code">1.)    [- ... -]    Execute code</A>
  		<LI><A HREF="Intro.pod.2.html#2_Output_the_result">2.)    [+ ... +]Output the result</A>
  		<LI><A HREF="Intro.pod.2.html#3_Execute_code_once">3.)    [! ... !]    Execute code once</A>
  		<LI><A HREF="Intro.pod.2.html#Meta_Commands">Meta-Commands</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.3.html#Dynamic_Tables">Dynamic Tables</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.3.html#Display_a_Perl_Array">Display a Perl Array</A>
  		<LI><A HREF="Intro.pod.3.html#Simple_DBI_Example">Simple DBI Example</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.4.html#Form_fields">Form fields</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.4.html#Posted_form_data_available_in_f">Posted form data available in %fdat/@ffld</A>
  		<LI><A HREF="Intro.pod.4.html#Input_Textarea_Select_tags_take_">Input/Textarea/Select tags take values from %fdat</A>
  		<LI><A HREF="Intro.pod.4.html#_hidden_">[$ hidden $]</A>
  		<LI><A HREF="Intro.pod.4.html#A_simple_Text_input_Confirmati">A simple Text input / Confirmation form</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.5.html#Debugging">Debugging</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.5.html#Embperl_log_file">Embperl log file</A>
  		<LI><A HREF="Intro.pod.5.html#Embperl_log_file_can_be_viewed_v">Embperl log file can be viewed via the browser</A>
  		<LI><A HREF="Intro.pod.5.html#Embperl_error_page_contains_link">Embperl error page contains links to the log file</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.6.html#Database_access">Database access</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.6.html#Plain_DBI">Plain DBI</A>
  		<LI><A HREF="Intro.pod.6.html#DBIx_Recordset">DBIx::Recordset</A>
  		<LI><A HREF="Intro.pod.6.html#Search_Example">Search Example</A>
  		<LI><A HREF="Intro.pod.6.html#Search_sets_up_a_Recordset_objec">Search sets up a Recordset object</A>
  		<LI><A HREF="Intro.pod.cont.html#Data_can_accessed_as_array_or_vi">Data can accessed as array or via the current record</A>
  		<LI><A HREF="Intro.pod.6.html#Fields_can_be_accessed_by_name">Fields can be accessed by name</A>
  		<LI><A HREF="Intro.pod.6.html#PrevNextForm_generates_no_one_tw">PrevNextForm generates no/one/two buttons depending if</A>
  		<LI><A HREF="Intro.pod.6.html#As_for_Search_there_are_methods_">As for Search there are methods for Insert/Update/Delete</A>
  		<LI><A HREF="Intro.pod.6.html#Database_table_can_also_tied_to_">Database table can also tied to a hash</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.7.html#Security">Security</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.7.html#Safe_namespaces">Safe namespaces</A>
  		<LI><A HREF="Intro.pod.7.html#Operator_restrictions">Operator restrictions</A>
  	</UL>
  
  	<LI><A HREF="Intro.pod.8.html#Escaping_Unescaping">Escaping/Unescaping</A>
  	<UL>
  
  		<LI><A HREF="Intro.pod.8.html#Input_unescaping">Input: unescaping</A>
  		<LI><A HREF="Intro.pod.8.html#Output_escaping">Output: escaping</A>
  	</UL>
  
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Intro.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Intro.pod.1.html">NEXT (What is Embperl?)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/Sites.pod.1.html
  
  Index: Sites.pod.1.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Sites.pod.1</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Sites_running_Embperl_What_peo">Sites running Embperl - What people say about Embperl</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">PREV (Sites running Embperl - Content)</a>]&nbsp;&nbsp; <br>	<UL>
  
  		<LI><A HREF="Sites.pod.1.html#http_bilder_ecos_de_Gerald_R">http://bilder.ecos.de - Gerald Richter [richter@ecos.de]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_webpersonals_com_St">http://www.webpersonals.com - Steve Willer [willer@interlog.com]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_dejanews_com_Dejan">http://www.dejanews.com/  -  Dejanews / france -</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_americanspice_com_">http://www.americanspice.com/ - Todd R. Eigenschink [eigenstr@mixi.net]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_golfbids_com_Dave_P">http://www.golfbids.com - Dave Paris [dparis@w3works.com]</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_site_John_Fisher_fishe">Intranet site John Fisher [fisher@jfisher.com]</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_Site_Deutsche_Bank_">Intranet Site - Deutsche Bank / germany</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_Site_Siemens_AG_ger">Intranet Site - Siemens AG / germany</A>
  	</UL>
  <hr>
  <P>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="http_bilder_ecos_de_Gerald_R">http://bilder.ecos.de - Gerald Richter [richter@ecos.de]</A></H2>
  <P>
  This was the site Embperl was originally written for. It's a picture
  database which contains pictures and tourist information for
  Rheinland-Pfalz/Germany. It's intended as press information, to reduce the
  need for sending photographs by real mail. You can view and search the
  pictures via the Internet or via a direct dial-in. Download is only
  available for valid users and via direct dial-in. It is also possible to
  maintain the database via the web and insert new pictures and descriptions
  and change or delete old ones.
  
  <P>
  <A HREF="http://bilder.ecos.de">http://bilder.ecos.de</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="http_www_webpersonals_com_St">http://www.webpersonals.com - Steve Willer [willer@interlog.com]</A></H2>
  <P>
  Our site is primarily database-driven. We need to keep track of sessions,
  allow the user to set a lot of information about themselves, search other
  people's ads, mail each other through the system, talk interactively, etc.
  Having an algorithmic language embedded in HTML is a must because it's a
  lot easier to visualize what you're doing.
  
  <P>
  Our decision to port from PHP to Perl was based entirely on performance.
  mod_perl keeps compiled scripts and modules in memory, and Perl is 10-20
  times faster for most operations even when you don't consider the benefit
  of not throwing away parsed data. My reasons for going with Embperl is
  because it's under active development, it seems to have lots of features,
  it probably doesn't perform poorly and most importantly it is capable of
  handling error situations gracefully. As you might expect, on a commercial
  site, you have to be very concerned about reliability and what happens when
  the inevitable bug creeps in.
  
  <P>
  I think we get maybe a million page views a day (this isn't the same as
  hits), and all of them access our database. The core modules run around 12K
  lines, and the pages will probably end up being 10-15K. Our Web servers are
  a mix of Solaris and Linux, and our DB is a Solaris box running Sybase.
  We're using DBD::Sybasefor the DB end.
  
  <P>
  <A HREF="http://www.webpersonals.com">http://www.webpersonals.com</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="http_www_dejanews_com_Dejan">http://www.dejanews.com/  -  Dejanews / france -
  Doug Bagley [doug@dejanews.com]</A></H2>
  <P>
  We do use Embperl at Deja News, mostly to generate chunks of pages that
  share a common format. That's why the Execute function was so valuable to
  us.
  
  <P>
  <A HREF="http://www.dejanews.com/">http://www.dejanews.com/</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="http_www_americanspice_com_">http://www.americanspice.com/ - Todd R. Eigenschink [eigenstr@mixi.net]</A></H2>
  <P>
  Pretty much everything is Embperl. It's a commerce site for a company that
  makes spices, sauces, and all sorts of other related things. There's a
  little more info at <A
  HREF="http://www.americanspice.com/about.html">http://www.americanspice.com/about.html</A>
  .
  
  <P>
  <A HREF="http://www.americanspice.com/">http://www.americanspice.com/</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="http_www_golfbids_com_Dave_P">http://www.golfbids.com - Dave Paris [dparis@w3works.com]</A></H2>
  <P>
  created by W3Works, LLC for the Golf Auction Network is a realtime auction
  environment for consumer-based golfing equipment and accessories. The site
  is comprised of Apache 1.3.X and Stronghold 2.X web servers and supported
  by an Oracle 8 database. The ``signup'', ``navigation'' and ``overview''
  pages are wholly composed of Embperl documents which query the database in
  realtime. User state is maintained via a session identifier embedded in the
  URL and Embperl makes management of these identifiers a breeze.
  
  <P>
  The site has not been well marketed to-date, and the existing average of
  1700 Embperl pages per day is well below our estimated capabilities of the
  system. Embperl has been effectively used in all forms (including secure
  signup forms sent by the Stronghold secure server), including the
  administrative sections. Our Embperl logs show a typical execution time
  range between 50 and 120ms per page. With 25 servers spawned and taking a
  high average of 100ms per Embperl page, our calculations say the
  combination should handle more than 250 requests/second - which would, of
  course, exceed the seek speed of the harddrives, so the hardware then
  becomes the limiting factor and Embperl performs flawlessly.
  
  <P>
  W3Works, LLC has been experimenting with the latest (final) release of
  Embperl and fully intends to make use of it wherever possible in our future
  projects (which include the re-development of the two domains
  ``fishing.com'' and ``flyfishing.com'' - which, when combined, currently
  generate over 190,000 pages and over 1.5M hits and per month - even in
  their ``cob-web'' state).
  
  <P>
  <A HREF="http://www.golfbids.com">http://www.golfbids.com</A>
  
  <P>
  Another Site from Dave Paris which uses Embperl is <A
  HREF="http://www.genebot.com">http://www.genebot.com</A>
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Intranet_site_John_Fisher_fishe">Intranet site John Fisher [fisher@jfisher.com]</A></H2>
  <P>
  I've been working extensively with Web servers for several years. I've done
  considerable work with 'standard' CGI Perl scripts, Javascript, ASP, and
  PHP (2 &amp; 3). I've even published a book about the first two topics
  (``The Webmaster's Handbook''). But, without a doubt, HTML::Embperl, in
  conjunction with mod_perl and the CGI library, is the coolest tool I've
  ever used.
  
  <P>
  I had to make an extremely complex intranet site in a short amount of time
  (isn't that the way it always goes?). Originally, the site was written with
  PHP3, mainly because I hadn't discovered mod_perl, and wanted to keep
  things very fast. But, after discovering mod_perl &amp; HTML::Embperl, I
  rewrote *everything*, about 5,000 lines of code. Took little over a week,
  and some convincing with my boss, but well worth it. The performance and
  maintainability went up considerably, and I've found the code to be a lot
  more interesting (Perl offers a lot more flexibility than PHP3). The code
  has grown to 7,000 lines, and everyone is just amazed by how fast
  everything is. My only disappointment is that the latest Perl innovations
  don't seem to get enough attention in the press.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Intranet_Site_Deutsche_Bank_">Intranet Site - Deutsche Bank / germany
  Christian Gau [CHRISTIAN.GAU@zentrale.deuba.com]</A></H2>
  <P>
  Our server runs a MySQL database, which gets its data from other in-house
  databases. This database contains aggregated management information stored
  in a historical format. With Embperl it's easy (and fast) to show this data
  in small web pages. Its also possible to change them interactively so
  everybody only sees what he/she wants. We have discovered that the people
  who supply the information and write the web pages have learned Perl very
  quickly, as long as they don't have to leave their usual HTML editor.
  
  <P>
  <HR>
  <H2><img src="sq.gif" width="16" height="16" alt="-"> <A NAME="Intranet_Site_Siemens_AG_ger">Intranet Site - Siemens AG / germany
  Steffen Geschke [Steffen.Geschke@erlf.siemens.de]</A></H2>
  <P>
  eSupport: Distribution of Software, Documentation and Help Desk for
  customers and service technician.
  
  <p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">PREV (Sites running Embperl - Content)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  </BODY>
  
  </HTML>
  
  
  
  1.1                  modperl-site/embperl/Sites.pod.cont.html
  
  Index: Sites.pod.cont.html
  ===================================================================
  <HTML>
  <HEAD>
  <TITLE>Sites.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY bgcolor="#FFFFFF">
  <blockquote>
    <blockquote>
      <H1><strong>
  <A NAME="Content-Sites.pod.cont">Sites running Embperl - Content</a></strong></h1>
    </blockquote>
  </blockquote>
  
  <img src="line.jpg" align="left" alt="________" WIDTH="732" HEIGHT="35">
  <BR CLEAR=LEFT>
  <blockquote>
    <blockquote>
  [<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Sites.pod.1.html">NEXT (Sites running Embperl - What people say about Embperl)</a>]&nbsp;&nbsp; <br><HTML>
  <HEAD>
  <TITLE>Sites.pod.cont</TITLE>
  <LINK REV="made" HREF="mailto:root@venus.gr.ecos.de">
  </HEAD>
  
  <BODY>
  
  <!-- INDEX BEGIN -->
  
  <UL>
  
  	<LI><A HREF="Sites.pod.1.html#Sites_running_Embperl_What_peo">Sites running Embperl - What people say about Embperl</A>
  	<UL>
  
  		<LI><A HREF="Sites.pod.1.html#http_bilder_ecos_de_Gerald_R">http://bilder.ecos.de - Gerald Richter [richter@ecos.de]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_webpersonals_com_St">http://www.webpersonals.com - Steve Willer [willer@interlog.com]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_dejanews_com_Dejan">http://www.dejanews.com/  -  Dejanews / france -</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_americanspice_com_">http://www.americanspice.com/ - Todd R. Eigenschink [eigenstr@mixi.net]</A>
  		<LI><A HREF="Sites.pod.1.html#http_www_golfbids_com_Dave_P">http://www.golfbids.com - Dave Paris [dparis@w3works.com]</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_site_John_Fisher_fishe">Intranet site John Fisher [fisher@jfisher.com]</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_Site_Deutsche_Bank_">Intranet Site - Deutsche Bank / germany</A>
  		<LI><A HREF="Sites.pod.1.html#Intranet_Site_Siemens_AG_ger">Intranet Site - Siemens AG / germany</A>
  	</UL>
  
  </UL>
  <!-- INDEX END -->
  <hr><p>[<a href="index.html">HOME</a>]&nbsp;&nbsp; [<a href="Sites.pod.cont.html">CONTENT</a>]&nbsp;&nbsp; [<a href="Sites.pod.1.html">NEXT (Sites running Embperl - What people say about Embperl)</a>]&nbsp;&nbsp; <br>
      <font color="#808080">___________________________________________________________________________________<br>
      HTML::Embperl - Copyright (c) 1997-1998 Gerald Richter / ECOS
      </font></p>
    </blockquote>
  </blockquote>
  </td></tr></table></body>
  </html>
  
  </body></html>
  
  
  1.1                  modperl-site/embperl/line.jpg
  
  Index: line.jpg
  ===================================================================
  ����
  
  
  %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�������������������������������������������������������������������������
  $4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������
  
  
  
  ��ˆ�K`j�����)'�Zê�0:�pA�\sQ���;4*�n�4�%-���	�GR
  NInn_QS�#�vcL�Z�Z	h���y��
  �x�tE�!�s��}b}�Ȅ29�j]Y��ʄ,ǂ��5rj͎�@�F�8���C��
  ��4
  ��"\�72�ڔqN�����$�TX����t��� ���
  ����B4n�`��L��.��byO�*^�}�̃�C�Q�g�9��Y���l|�O-�h�l9�yG��T{6�"=2*&Øp��M��V�Mmryо[�П‡F���o��?�G���>dS�
  ��O�{�=EaC6y��h����\��.T!�LpGҟ<����_�R�aʅ��c��S�}ʅ1��U��[~h�B���(
  
  
  
  
  ���!�o!�c����֟T�v/i!
�G��?Z_S�v?m!E�`~9�?�����-c�qO��b8��4��L~�@-!x����1{Y�x����>�K��.ywm�OsG��v���%�Qo9�3�s�Z��]�%�_)?���?eO�W�.g���)<=7�|��'�����j}��K�}�/��}^�`�p���Q�j]��A�x����>�K�{Iwma'&>~�����~c���!���
  ]X{e��:|˟]�j�����'�y�_u�
  -���f��%�/h���7����?h^��,WY�P@
  
  
  1.1                  modperl-site/embperl/sq.gif
  
  Index: sq.gif
  ===================================================================
  GIF89a
  
  
  1.1                  modperl-site/embperl/eg/config.ep.html
  
  Index: config.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Perl config (like perl -V)</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  <br>
  [- use Config qw (myconfig) ; -]<br>
  [- $c = myconfig () -]<br>
  [- $c =~ s/\n/\\\<BR\\\>/g -]<br>
  [+ $c +]<br>
  <br>
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/config.html
  
  Index: config.html
  ===================================================================
  
  <html>
  <head>
  <title>Perl config (like perl -V)</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  
  
  
  Summary of my perl5 (5.0 patchlevel 4 subversion 4) configuration:<BR>  Platform:<BR>    osname=linux, osvers=2.0.30, archname=i586-linux<BR>    uname='linux venus 2.0.33 #1 sat mar 7 15:35:47 met 1998 i586 unknown '<BR>    hint=recommended, useposix=true, d_sigaction=define<BR>    bincompat3=y useperlio=undef d_sfio=undef<BR>  Compiler:<BR>    cc='cc', optimize='-O2', gccversion=2.7.2.1<BR>    cppflags='-Dbool=char -DHAS_BOOL -I/usr/local/include'<BR>    ccflags ='-Dbool=char -DHAS_BOOL -I/usr/local/include'<BR>    stdchar='char', d_stdstdio=define, usevfork=false<BR>    voidflags=15, castflags=0, d_casti32=define, d_castneg=define<BR>    intsize=4, alignbytes=4, usemymalloc=n, prototype=define<BR>  Linker and Libraries:<BR>    ld='cc', ldflags =' -L/usr/local/lib'<BR>    libpth=/usr/local/lib /lib /usr/lib<BR>    libs=-lgdbm -ldb -ldl -lm -lc<BR>    libc=/lib/libc.so.5.4.44, so=so<BR>    useshrplib=false, libperl=libperl.a<BR>  Dynamic Linking:<BR>    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlfl
ags='-rdynamic'<BR>    cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'<BR><BR>
  
  </body>
  </html>
                                  
  
  
  
  1.1                  modperl-site/embperl/eg/config.src.html
  
  Index: config.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Perl config (like perl -V)&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  [- use Config qw (myconfig) ; -]<br>
  [- $c = myconfig () -]<br>
  [- $c =~ s/\n/\\\&lt;BR\\\&gt;/g -]<br>
  [+ $c +]<br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  
  
  
  1.1                  modperl-site/embperl/eg/dbi1.ep.html
  
  Index: dbi1.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBI access using Dynamic Tables</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBI access using Dynamic Tables</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working<br>
  
  <hr>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBI ;<br>
  <br>
  # connect to database<br>
   $dbh = DBI->connect($DSN) or die "Cannot connect to '$DSN'" ;<br>
  <br>
  # prepare the sql select<br>
   $sth = $dbh -> prepare ("SELECT * from $table")  or die "Cannot SELECT from '$table'" ;<br>
  <br>
  # excute the query<br>
   $sth -> execute  or die "Cannot execute SELECT from '$table'";<br>
  <br>
  # get the fieldnames for the heading in $head<br>
   $head = $sth -> {NAME} ;<br>
  <br>
  # get the result in $dat<br>
   $dat = $sth -> fetchall_arrayref ;<br>
  <br>
  -]<br>
  <br>
  <table border=1>
  	<tr><th>[+ $head->[$col] +]</th></tr>
  	<tr><td>[+ $dat -> [$row][$col] +]</td></tr>
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/dbi1.html
  
  Index: dbi1.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBI access using Dynamic Tables</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBI access using Dynamic Tables</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working<br>
  
  <hr>
  
  
  
  <table border=1>
  	<tr><th>id</th><th>name</th><th>value1</th><th>addon</th></tr>
  	<tr><td>1</td><td>First Name</td><td>9991</td><td>Is</td></tr>
  
  	<tr><td>2</td><td>Second Name</td><td>9992</td><td>it</td></tr>
  
  	<tr><td>3</td><td>Third Name</td><td>9993</td><td>it ok?</td></tr>
  
  	<tr><td>4</td><td>New Name on id 4</td><td>4444</td><td>Or not??</td></tr>
  
  	<tr><td>5</td><td>Fivth Name</td><td>9995</td><td>Is</td></tr>
  
  	<tr><td>6</td><td>Sixth Name</td><td>9996</td><td>it</td></tr>
  
  	<tr><td>7</td><td>Seventh Name</td><td>9997</td><td>it ok?</td></tr>
  
  	<tr><td>8</td><td>Eighth Name</td><td>9998</td><td>Or not??</td></tr>
  
  	<tr><td>9</td><td>Ninth Name</td><td>9999</td><td>Is</td></tr>
  
  	<tr><td>10</td><td>Tenth Name</td><td>99910</td><td>it</td></tr>
  
  	<tr><td>11</td><td>Eleventh Name</td><td>99911</td><td>it ok?</td></tr>
  
  	<tr><td>12</td><td>Twelvth Name</td><td>99912</td><td>Or not??</td></tr>
  
  	<tr><td>1234</td><td>New rec 1234</td></tr>
  
  	<tr><td>12345</td><td>New rec 12345</td></tr>
  
  	<tr><td>123456</td><td>New rec 123456</td></tr>
  
  	<tr><td>1234567</td><td>New rec 1234567</td></tr>
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/dbi1.src.html
  
  Index: dbi1.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - DBI access using Dynamic Tables&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - DBI access using Dynamic Tables&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;b&gt;NOTE:&lt;/b&gt;&lt;br&gt;<br>
  You must set the database and table to something which exists on your system&lt;br&gt;<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working&lt;br&gt;<br>
  <br>
  &lt;hr&gt;<br>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBI ;<br>
  <br>
  # connect to database<br>
   $dbh = DBI-&gt;connect($DSN) or die "Cannot connect to '$DSN'" ;<br>
  <br>
  # prepare the sql select<br>
   $sth = $dbh -&gt; prepare ("SELECT * from $table")  or die "Cannot SELECT from '$table'" ;<br>
  <br>
  # excute the query<br>
   $sth -&gt; execute  or die "Cannot execute SELECT from '$table'";<br>
  <br>
  # get the fieldnames for the heading in $head<br>
   $head = $sth -&gt; {NAME} ;<br>
  <br>
  # get the result in $dat<br>
   $dat = $sth -&gt; fetchall_arrayref ;<br>
  <br>
  -]<br>
  <br>
  &lt;table border=1&gt;<br>
  	&lt;tr&gt;&lt;th&gt;[+ $head-&gt;[$col] +]&lt;/th&gt;&lt;/tr&gt;<br>
  	&lt;tr&gt;&lt;td&gt;[+ $dat -&gt; [$row][$col] +]&lt;/td&gt;&lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/dbi2.ep.html
  
  Index: dbi2.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBI access using Loops</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBI access using Loops</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working<br>
  
  <hr>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBI ;<br>
  <br>
  # connect to database<br>
   $dbh = DBI->connect($DSN) or die "Cannot connect to '$DSN'" ;<br>
  <br>
  # prepare the sql select<br>
   $sth = $dbh -> prepare ("SELECT * from $table")  or die "Cannot SELECT from '$table'" ;<br>
  <br>
  # excute the query<br>
   $sth -> execute  or die "Cannot execute SELECT from '$table'";<br>
  <br>
  # get the fieldnames for the heading in $head<br>
   $head = $sth -> {NAME} ;<br>
  <br>
  -]<br>
  <br>
  <table border=1>
  	
  	<tr>
  	[$ foreach $h @$head $]
  		<th>[+ $h +]</th>
  	[$ endforeach $]
  	</tr>
  
  	[$ while $dat = $sth -> fetchrow_arrayref $]<br>
  		<tr>
  			[$ foreach $v @$dat $]<br>
  				<td>[+ $v +]</td>
  			[$ endforeach $]<br>	
  		</tr>
  	[$ endwhile $]<br>
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/dbi2.html
  
  Index: dbi2.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBI access using Loops</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBI access using Loops</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working<br>
  
  <hr>
  
  
  
  <table border=1>
  	
  	<tr>
  	
  		<th>id</th>
  	
  		<th>name</th>
  	
  		<th>value1</th>
  	
  		<th>addon</th>
  	
  	</tr>
  
  	
  		<tr>
  			
  				<td>1</td>
  			
  				<td>First Name</td>
  			
  				<td>9991</td>
  			
  				<td>Is</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>2</td>
  			
  				<td>Second Name</td>
  			
  				<td>9992</td>
  			
  				<td>it</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>3</td>
  			
  				<td>Third Name</td>
  			
  				<td>9993</td>
  			
  				<td>it ok?</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>4</td>
  			
  				<td>New Name on id 4</td>
  			
  				<td>4444</td>
  			
  				<td>Or not??</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>5</td>
  			
  				<td>Fivth Name</td>
  			
  				<td>9995</td>
  			
  				<td>Is</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>6</td>
  			
  				<td>Sixth Name</td>
  			
  				<td>9996</td>
  			
  				<td>it</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>7</td>
  			
  				<td>Seventh Name</td>
  			
  				<td>9997</td>
  			
  				<td>it ok?</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>8</td>
  			
  				<td>Eighth Name</td>
  			
  				<td>9998</td>
  			
  				<td>Or not??</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>9</td>
  			
  				<td>Ninth Name</td>
  			
  				<td>9999</td>
  			
  				<td>Is</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>10</td>
  			
  				<td>Tenth Name</td>
  			
  				<td>99910</td>
  			
  				<td>it</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>11</td>
  			
  				<td>Eleventh Name</td>
  			
  				<td>99911</td>
  			
  				<td>it ok?</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>12</td>
  			
  				<td>Twelvth Name</td>
  			
  				<td>99912</td>
  			
  				<td>Or not??</td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>1234</td>
  			
  				<td>New rec 1234</td>
  			
  				<td></td>
  			
  				<td></td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>12345</td>
  			
  				<td>New rec 12345</td>
  			
  				<td></td>
  			
  				<td></td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>123456</td>
  			
  				<td>New rec 123456</td>
  			
  				<td></td>
  			
  				<td></td>
  				
  		</tr>
  	
  		<tr>
  			
  				<td>1234567</td>
  			
  				<td>New rec 1234567</td>
  			
  				<td></td>
  			
  				<td></td>
  				
  		</tr>
  	
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/dbi2.src.html
  
  Index: dbi2.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - DBI access using Loops&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - DBI access using Loops&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;b&gt;NOTE:&lt;/b&gt;&lt;br&gt;<br>
  You must set the database and table to something which exists on your system&lt;br&gt;<br>
  Maybe it's necessary to insert a PerlModule DBI into your srm.conf to get this working&lt;br&gt;<br>
  <br>
  &lt;hr&gt;<br>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBI ;<br>
  <br>
  # connect to database<br>
   $dbh = DBI-&gt;connect($DSN) or die "Cannot connect to '$DSN'" ;<br>
  <br>
  # prepare the sql select<br>
   $sth = $dbh -&gt; prepare ("SELECT * from $table")  or die "Cannot SELECT from '$table'" ;<br>
  <br>
  # excute the query<br>
   $sth -&gt; execute  or die "Cannot execute SELECT from '$table'";<br>
  <br>
  # get the fieldnames for the heading in $head<br>
   $head = $sth -&gt; {NAME} ;<br>
  <br>
  -]<br>
  <br>
  &lt;table border=1&gt;<br>
  	<br>
  	&lt;tr&gt;<br>
  	[$ foreach $h @$head $]<br>
  		&lt;th&gt;[+ $h +]&lt;/th&gt;<br>
  	[$ endforeach $]<br>
  	&lt;/tr&gt;<br>
  <br>
  	[$ while $dat = $sth -&gt; fetchrow_arrayref $]<br>
  		&lt;tr&gt;<br>
  			[$ foreach $v @$dat $]<br>
  				&lt;td&gt;[+ $v +]&lt;/td&gt;<br>
  			[$ endforeach $]	<br>
  		&lt;/tr&gt;<br>
  	[$ endwhile $]<br>
  &lt;/table&gt;<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/execute.html
  
  Index: execute.html
  ===================================================================
  <HTML><TITLE>Test for HTML::Embperl::Execute</TITLE><BODY>
  <H1> 1.) Include from memory</H1>
  <P>Here is some text</P>
  <H1> 2.) Include from memory with some Embperl code</H1>
  <table><tr><td>a1</td><td>b2</td><td>c3</td></tr></table></P>
  <H1> 3.) Include from memory with passing of variables</H1>
  <P>Transfer some vars Some Var !</P>
  <H1> 4.) Change the variable, but not the code</H1>
  <P>Transfer some vars Do it again !</P>
  <H1> 5.) Use @param to pass parameters</H1>
  <P>Use \@param to transfer some data ( 1 2 3 4 ) !</P>
  <H1> 6.) Use @param to pass parameters and return it</H1>
  <H3> $p[0] is vara and $p[1] is varb<H3><P>Got data in @param (vara varb) !</P><P>Change data in @param to (newA newB) !</P>
  <H3> $p[0] is now newA and $p[1] is now newB<H3><H1> 7.) Presetup %fdat and @ffld</H1>
  <P><table><tr><td>fdat</td><td>text</td></tr><tr><td>test</td><td>value</td></tr></table></P>
  <H1> 8.) Inculde a file</H1>
  <H1> 9.) Inculde a file and return output in a scalar</H1>
  <H3></H3>
  <H1> 10.) Done :-)</H1>
  </body></html>
  
  
  
  1.1                  modperl-site/embperl/eg/execute.src.html
  
  Index: execute.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  #<br>
  # Example for using HTML::Embperl::Execute<br>
  #<br>
  # run this under mod_perl / Apache::Registry<br>
  # or standalone<br>
  #<br>
  <br>
  <br>
  use HTML::Embperl ;<br>
  <br>
  my($r) = @_;<br>
  <br>
  $HTML::Embperl::DebugDefault = 811005 ;<br>
  <br>
  <br>
  $tst1 = '&lt;P&gt;Here is some text&lt;/P&gt;' ;<br>
  <br>
  $r -&gt; status (200) ;<br>
  $r -&gt; send_http_header () ;<br>
  <br>
  print "&lt;HTML&gt;&lt;TITLE&gt;Test for HTML::Embperl::Execute&lt;/TITLE&gt;&lt;BODY&gt;\n" ;<br>
  print "&lt;H1&gt; 1.) Include from memory&lt;/H1&gt;\n" ;<br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \$tst1,<br>
  						 mtime      =&gt; 1,  <br>
  						 inputfile	=&gt; 'Some text',<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  <br>
  print "&lt;H1&gt; 2.) Include from memory with some Embperl code&lt;/H1&gt;\n" ;<br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'[- @ar = (a1, b2, c3) -]&lt;table&gt;&lt;tr&gt;&lt;td&gt;[+$ar[$col]+]&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/P&gt;',<br>
  						 mtime      =&gt; 1,  <br>
  						 inputfile	=&gt; 'table',<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  print "&lt;H1&gt; 3.) Include from memory with passing of variables&lt;/H1&gt;\n" ;<br>
  <br>
  <br>
  $MyPackage::Interface::Var = 'Some Var' ;<br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'&lt;P&gt;Transfer some vars [+ $Var +] !&lt;/P&gt;',<br>
  						 inputfile	=&gt; 'Var',<br>
  						 mtime      =&gt; 1,<br>
  						 'package'  =&gt; 'MyPackage::Interface',<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  print "&lt;H1&gt; 4.) Change the variable, but not the code&lt;/H1&gt;\n" ;<br>
  <br>
  $MyPackage::Interface::Var = 'Do it again' ;<br>
  <br>
  # code is the same, so give the same mtime and inputfile to avoid recompile<br>
  # Note you get problems is you change the code, but did not restart the server or<br>
  # change the value in mtime. So make sure if you change something also change mtime!<br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'&lt;P&gt;Transfer some vars [+ $Var +] !&lt;/P&gt;',<br>
  						 inputfile	=&gt; 'Var2',<br>
  						 mtime      =&gt; 1,  <br>
  						 'package'  =&gt; 'MyPackage::Interface',<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  <br>
  print "&lt;H1&gt; 5.) Use \@param to pass parameters&lt;/H1&gt;\n" ;<br>
  <br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'&lt;P&gt;Use \@param to transfer some data ([+ " @param " +]) !&lt;/P&gt;',<br>
  						 inputfile	=&gt; 'Param',<br>
  						 req_rec    =&gt; $r,<br>
  						 param      =&gt; [1, 2, 3, 4] }<br>
  						 ) ;<br>
  <br>
  <br>
  print "&lt;H1&gt; 6.) Use \@param to pass parameters and return it&lt;/H1&gt;\n" ;<br>
  <br>
  <br>
  my @p = ('vara', 'varb') ;<br>
  <br>
  print "&lt;H3&gt; \$p[0] is $p[0] and \$p[1] is $p[1]&lt;H3&gt;" ;<br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'&lt;P&gt;Got data in @param ([+ "@param" +]) !&lt;/P&gt;[- $param[0] = "newA" ; $param[1] = "newB" ; -]&lt;P&gt;Change data in @param to ([+ "@param" +]) !&lt;/P&gt;',<br>
  						 inputfile	=&gt; 'Param & Return',<br>
  						 req_rec    =&gt; $r,<br>
  						 param      =&gt; \@p }<br>
  						 ) ;<br>
  <br>
  print "&lt;H3&gt; \$p[0] is now $p[0] and \$p[1] is now $p[1]&lt;H3&gt;" ;<br>
  <br>
  print "&lt;H1&gt; 7.) Presetup \%fdat and \@ffld&lt;/H1&gt;\n" ;<br>
  <br>
  my %myfdat = ('test' =&gt; 'value',<br>
                'fdat' =&gt; 'text') ;<br>
                <br>
  my @myffld = sort keys %myfdat ;             <br>
  <br>
  HTML::Embperl::Execute ({input		=&gt; \'&lt;P&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;[+ $k = $ffld[$row] +]&lt;/td&gt;&lt;td&gt;[+ $fdat{$k} +]&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/P&gt;',<br>
  						 inputfile	=&gt; 'fdat & ffld',<br>
  						 req_rec    =&gt; $r,<br>
  						 fdat  =&gt; \%myfdat,<br>
  						 ffld  =&gt; \@myffld}<br>
  						 ) ;<br>
  <br>
  <br>
  print "&lt;H1&gt; 8.) Inculde a file&lt;/H1&gt;\n" ;<br>
  <br>
  <br>
  HTML::Embperl::Execute ({inputfile	=&gt; '../inc.htm',<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  <br>
  print "&lt;H1&gt; 9.) Inculde a file and return output in a scalar&lt;/H1&gt;\n" ;<br>
  <br>
  my $out ;<br>
  <br>
  HTML::Embperl::Execute ({inputfile	=&gt; '../inc.htm',<br>
  						 output     =&gt; \$out,<br>
  						 req_rec    =&gt; $r}) ;<br>
  <br>
  <br>
  print "&lt;H3&gt;$out&lt;/H3&gt;\n" ;<br>
  <br>
  print "&lt;H1&gt; 10.) Done :-)&lt;/H1&gt;\n" ;<br>
  <br>
  <br>
  print "&lt;/body&gt;&lt;/html&gt;\n";<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/if.ep.html
  
  Index: if.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - If Metacommands</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - If Metacommands</h1>
  <hr><h3>The following displays an sentence depending on the method (GET, POST, other)</h3>
  <br>
  [$ if $ENV{REQUEST_METHOD} eq 'GET' $]<br>
  	This is a GET request<br>
  [$ elsif $ENV{REQUEST_METHOD} eq 'POST' $]<br>
  	This is a POST request<br>
  [$ else $]<br>
  	This is not GET and not POST<br>
  [$ endif $]<br>
  <br>
  
  <hr><h3>The following displays an different sentence depending on the show parameter</h3>
  
  
  [$ if $fdat{show} eq 'yes' $]<br>
      The show parameter is 'yes'<br>
  [$ elsif $fdat{show} eq 'no' $]<br>
      Nothing to show<br>
  [$ else $]<br>
      Request with if.htm?show=yes<BR>
      of with if.htm?show=no<BR>
  [$ endif $]<br>
  <br>
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/if.html
  
  Index: if.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - If Metacommands</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - If Metacommands</h1>
  <hr><h3>The following displays an sentence depending on the method (GET, POST, other)</h3>
  
  
  	This is a GET request
  
  
  
  <hr><h3>The following displays an different sentence depending on the show parameter</h3>
  
  
  
      Request with if.htm?show=yes<BR>
      of with if.htm?show=no<BR>
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/if.src.html
  
  Index: if.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - If Metacommands&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - If Metacommands&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;h3&gt;The following displays an sentence depending on the method (GET, POST, other)&lt;/h3&gt;<br>
  <br>
  [$ if $ENV{REQUEST_METHOD} eq 'GET' $]<br>
  	This is a GET request<br>
  [$ elsif $ENV{REQUEST_METHOD} eq 'POST' $]<br>
  	This is a POST request<br>
  [$ else $]<br>
  	This is not GET and not POST<br>
  [$ endif $]<br>
  <br>
  <br>
  &lt;hr&gt;&lt;h3&gt;The following displays an different sentence depending on the show parameter&lt;/h3&gt;<br>
  <br>
  <br>
  [$ if $fdat{show} eq 'yes' $]<br>
      The show parameter is 'yes'<br>
  [$ elsif $fdat{show} eq 'no' $]<br>
      Nothing to show<br>
  [$ else $]<br>
      Request with if.htm?show=yes&lt;BR&gt;<br>
      of with if.htm?show=no&lt;BR&gt;<br>
  [$ endif $]<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/input.ep.html
  
  Index: input.ep.html
  ===================================================================
  <html>
  <head>
  <title>Embperl Example - Input / Confirmation - Form</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Input / Confirmation - Form</h1>
  
  <b>Please make sure you enter a valid email address in the
  source before testing the mail function</b>
  <br>
  [-<br>
    $MailTo = 'richter@ecos.de' ;<br>
  <br>
    @errors = () ;<br>
    if (defined($fdat{check}) || defined($fdat{send}))<br>
      {<br>
      push @errors, "**Please enter your name" if (!$fdat{name}) ;<br>
      push @errors, "**Please enter your e-mail address" if (!$fdat{email}) ;<br>
      }<br>
  -]<br>
  <br>
  [$if (defined($fdat{check}) and $#errors == -1)$]<br>
  [- delete $fdat{input} ; delete $fdat{check} ; delete $fdat{send} -]<br>
  <br>
  <hr><h3> You have entered the following data:</h3>
  <table>
    <tr><td><b>Name</b></td><td>[+$fdat{name}+]</td></tr>
    <tr><td><b>E-Mail</b></td><td>[+$fdat{email}+]</td></tr>
    <tr><td><b>Message</b></td><td>[+$fdat{msg}+]</td></tr>
    <tr><td align="center" colspan="2">
       <form action="input.htm" method="GET">
         <input type="submit" name="send" value="Send to [+ $MailTo +]">
         <input type="submit" name="input" value="Change your data">
         <br>[$hidden$]<br>
      </form>
      </td></tr>
  </table>
  <br>
  [$elsif defined($fdat{send}) and $#errors == -1$]<br>
  <br>
  [- MailFormTo ($MailTo,'Formdata','email') -]<br>
  <hr><h3>Your input has been sent</h3>
  <br>
  [$else$]<br>
  <br>
  <hr><h3>Please enter your data</h3>
  
  <form action="input.htm" method="GET">
    <table>
      [$if $#errors != -1 $]<br>
        <tr><td colspan="2">
        <table>
  	<tr><td>[+$errors[$row]+]</td></tr>
        </table>
        </td></tr>
      [$endif$]<br>
      <tr><td><b>Name</b></td> <td><input type="text" name="name"></td></tr>
      <tr><td><b>E-Mail</b></td> <td><input type="text" name="email"></td></tr>
      <tr><td><b>Message</b></td> <td><input type="text" name="msg"></td></tr>
      <tr><td colspan=2><input type="submit" name="check" value="Send"></td></tr>
    </table>
  </form>
  <br>
  [$endif$]<br>
  <br>
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/input.src.html
  
  Index: input.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Example - Input / Confirmation - Form&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - Input / Confirmation - Form&lt;/h1&gt;<br>
  <br>
  &lt;b&gt;Please make sure you enter a valid email address in the<br>
  source before testing the mail function&lt;/b&gt;<br>
  <br>
  [-<br>
    $MailTo = 'richter@ecos.de' ;<br>
  <br>
    @errors = () ;<br>
    if (defined($fdat{check}) || defined($fdat{send}))<br>
      {<br>
      push @errors, "**Please enter your name" if (!$fdat{name}) ;<br>
      push @errors, "**Please enter your e-mail address" if (!$fdat{email}) ;<br>
      }<br>
  -]<br>
  <br>
  [$if (defined($fdat{check}) and $#errors == -1)$]<br>
  [- delete $fdat{input} ; delete $fdat{check} ; delete $fdat{send} -]<br>
  <br>
  &lt;hr&gt;&lt;h3&gt; You have entered the following data:&lt;/h3&gt;<br>
  &lt;table&gt;<br>
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{name}+]&lt;/td&gt;&lt;/tr&gt;<br>
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;E-Mail&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{email}+]&lt;/td&gt;&lt;/tr&gt;<br>
    &lt;tr&gt;&lt;td&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/td&gt;&lt;td&gt;[+$fdat{msg}+]&lt;/td&gt;&lt;/tr&gt;<br>
    &lt;tr&gt;&lt;td align="center" colspan="2"&gt;<br>
       &lt;form action="input.htm" method="GET"&gt;<br>
         &lt;input type="submit" name="send" value="Send to [+ $MailTo +]"&gt;<br>
         &lt;input type="submit" name="input" value="Change your data"&gt;<br>
         [$hidden$]<br>
      &lt;/form&gt;<br>
      &lt;/td&gt;&lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  <br>
  [$elsif defined($fdat{send}) and $#errors == -1$]<br>
  <br>
  [- MailFormTo ($MailTo,'Formdata','email') -]<br>
  &lt;hr&gt;&lt;h3&gt;Your input has been sent&lt;/h3&gt;<br>
  <br>
  [$else$]<br>
  <br>
  &lt;hr&gt;&lt;h3&gt;Please enter your data&lt;/h3&gt;<br>
  <br>
  &lt;form action="input.htm" method="GET"&gt;<br>
    &lt;table&gt;<br>
      [$if $#errors != -1 $]<br>
        &lt;tr&gt;&lt;td colspan="2"&gt;<br>
        &lt;table&gt;<br>
  	&lt;tr&gt;&lt;td&gt;[+$errors[$row]+]&lt;/td&gt;&lt;/tr&gt;<br>
        &lt;/table&gt;<br>
        &lt;/td&gt;&lt;/tr&gt;<br>
      [$endif$]<br>
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;Name&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="name"&gt;&lt;/td&gt;&lt;/tr&gt;<br>
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;E-Mail&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="email"&gt;&lt;/td&gt;&lt;/tr&gt;<br>
      &lt;tr&gt;&lt;td&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;input type="text" name="msg"&gt;&lt;/td&gt;&lt;/tr&gt;<br>
      &lt;tr&gt;&lt;td colspan=2&gt;&lt;input type="submit" name="check" value="Send"&gt;&lt;/td&gt;&lt;/tr&gt;<br>
    &lt;/table&gt;<br>
  &lt;/form&gt;<br>
  <br>
  [$endif$]<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/input_1.html
  
  Index: input_1.html
  ===================================================================
  <html>
  <head>
  <title>Embperl Example - Input / Confirmation - Form</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Input / Confirmation - Form</h1>
  
  <b>Please make sure you enter a valid email address in the
  source before testing the mail function</b>
  
  
  
  
  
  <hr><h3>Please enter your data</h3>
  
  <form action="input.htm" method="GET">
    <table>
      
      <tr><td><b>Name</b></td> <td><input type="text" name="name"></td></tr>
      <tr><td><b>E-Mail</b></td> <td><input type="text" name="email"></td></tr>
      <tr><td><b>Message</b></td> <td><input type="text" name="msg"></td></tr>
      <tr><td colspan=2><input type="submit" name="check" value="Send"></td></tr>
    </table>
  </form>
  
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/input_2.html
  
  Index: input_2.html
  ===================================================================
  <html>
  <head>
  <title>Embperl Example - Input / Confirmation - Form</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Input / Confirmation - Form</h1>
  
  <b>Please make sure you enter a valid email address in the
  source before testing the mail function</b>
  
  
  
  
  
  
  <hr><h3> You have entered the following data:</h3>
  <table>
    <tr><td><b>Name</b></td><td>Gerald</td></tr>
    <tr><td><b>E-Mail</b></td><td>richter@ecos.de</td></tr>
    <tr><td><b>Message</b></td><td>Test</td></tr>
    <tr><td align="center" colspan="2">
       <form action="input.htm" method="GET">
         <input type="submit" name="send" value="Send to richter@ecos.de">
         <input type="submit" name="input" value="Change your data">
         
  <input type="hidden" name="name" value="Gerald">
  <input type="hidden" name="email" value="richter@ecos.de">
  <input type="hidden" name="msg" value="Test">
  
      </form>
      </td></tr>
  </table>
  
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/input_3.html
  
  Index: input_3.html
  ===================================================================
  <html>
  <head>
  <title>Embperl Example - Input / Confirmation - Form</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Input / Confirmation - Form</h1>
  
  <b>Please make sure you enter a valid email address in the
  source before testing the mail function</b>
  
  
  
  
  
  
  <hr><h3>Your input has been sent</h3>
  
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/lists.ep.html
  
  Index: lists.ep.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  <html>
  
  <head>
  <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
  <title>Lists</title>
  </head>
  
  <body bgcolor="#FFFFFF">
  
  <p>[- @k = keys %INC -]<br>
  [- @v = values %INC -]<br>
  </p>
  <hr>
  <P>OL Tag</P>
  <ol>
      <li>[+ $k[$row] +] = [+ $v[$row] +]</li>
  </ol>
  
  <hr>
  <P>UL Tag</P>
  <ul>
      <li>[+ $k[$row] +] = [+ $v[$row] +]</li>
  </ul>
  
  <hr>
  <form method="POST">
    <P>Select Tag</P>
  
      If you request this document with list.htm?sel=x you can specify which
      module of the dropdownlist is initialy selected<BR>
      eg. lists.htm?sel=Apache.pm
  
      <p><select name="sel" size="1">
          <option value="[+ $k[$row] +]">[+ $v[$row] +]</option>
      </select></p>
  </form>
  
  <hr>
  <P>DL Tag</P>
  <dl>
      <dt>[+ $k[$row] +]</dt>
      <dd>[+ $v[$row] +]</dd>
  </dl>
  
  <hr>
  <P>MENU Tag</P>
  <menu>
      <li>[+ $k[$row] +] = [+ $v[$row] +]</li>
  </menu>
  
  <hr>
  <P>DIR Tag</P>
  <dir>
      <li>[+ $k[$row] +] = [+ $v[$row] +]</li>
  </dir>
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/lists.html
  
  Index: lists.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
  <html>
  
  <head>
  <meta http-equiv="Content-Type"
  content="text/html; charset=iso-8859-1">
  <title>Lists</title>
  </head>
  
  <body bgcolor="#FFFFFF">
  
  <p><br>
  <br>
  </p>
  <hr>
  <P>OL Tag</P>
  <ol>
      <li>Apache/Status.pm = /usr/lib/perl5/site_perl/Apache/Status.pm</li>
  
      <li>Fcntl.pm = /usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</li>
  
      <li>IO.pm = /usr/lib/perl5/IO.pm</li>
  
      <li>Exporter.pm = /usr/lib/perl5/Exporter.pm</li>
  
      <li>strict.pm = /usr/lib/perl5/strict.pm</li>
  
      <li>DBIx/Compat.pm = /usr/lib/perl5/site_perl/DBIx/Compat.pm</li>
  
      <li>overload.pm = /usr/lib/perl5/i586-linux/5.00404/overload.pm</li>
  
      <li>vars.pm = /usr/lib/perl5/vars.pm</li>
  
      <li>subs.pm = /usr/lib/perl5/subs.pm</li>
  
      <li>Cwd.pm = /usr/lib/perl5/Cwd.pm</li>
  
      <li>LWP/MemberMixin.pm = /usr/lib/perl5/site_perl/LWP/MemberMixin.pm</li>
  
      <li>Safe.pm = /usr/lib/perl5/i586-linux/5.00404/Safe.pm</li>
  
      <li>SelectSaver.pm = /usr/lib/perl5/SelectSaver.pm</li>
  
      <li>Apache.pm = /usr/lib/perl5/site_perl/Apache.pm</li>
  
      <li>IO/Seekable.pm = /usr/lib/perl5/IO/Seekable.pm</li>
  
      <li>DynaLoader.pm = /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</li>
  
      <li>IO/File.pm = /usr/lib/perl5/IO/File.pm</li>
  
      <li>HTML/Entities.pm = /usr/lib/perl5/site_perl/HTML/Entities.pm</li>
  
      <li>Time/Local.pm = /usr/lib/perl5/Time/Local.pm</li>
  
      <li>Apache/Registry.pm = /usr/lib/perl5/site_perl/Apache/Registry.pm</li>
  
      <li>constant.pm = /usr/lib/perl5/constant.pm</li>
  
      <li>HTTP/Headers.pm = /usr/lib/perl5/site_perl/HTTP/Headers.pm</li>
  
      <li>FileHandle.pm = /usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</li>
  
      <li>HTTP/Date.pm = /usr/lib/perl5/site_perl/HTTP/Date.pm</li>
  
      <li>AutoLoader.pm = /usr/lib/perl5/AutoLoader.pm</li>
  
      <li>HTML/Parser.pm = /usr/lib/perl5/site_perl/HTML/Parser.pm</li>
  
      <li>CGI.pm = /usr/lib/perl5/CGI.pm</li>
  
      <li>IO/Handle.pm = /usr/lib/perl5/IO/Handle.pm</li>
  
      <li>LWP/Protocol.pm = /usr/lib/perl5/site_perl/LWP/Protocol.pm</li>
  
      <li>Apache/SIG.pm = /usr/lib/perl5/site_perl/Apache/SIG.pm</li>
  
      <li>Data/Dumper.pm = /usr/lib/perl5/site_perl/Data/Dumper.pm</li>
  
      <li>Config.pm = /usr/lib/perl5/i586-linux/5.00404/Config.pm</li>
  
      <li>Symbol.pm = /usr/lib/perl5/Symbol.pm</li>
  
      <li>HTTP/Request.pm = /usr/lib/perl5/site_perl/HTTP/Request.pm</li>
  
      <li>Opcode.pm = /usr/lib/perl5/i586-linux/5.00404/Opcode.pm</li>
  
      <li>HTTP/Response.pm = /usr/lib/perl5/site_perl/HTTP/Response.pm</li>
  
      <li>Apache/DBI.pm = /usr/lib/perl5/site_perl/Apache/DBI.pm</li>
  
      <li>DBIx/Recordset.pm = /usr/lib/perl5/site_perl/DBIx/Recordset.pm</li>
  
      <li>HTML/HeadParser.pm = /usr/lib/perl5/site_perl/HTML/HeadParser.pm</li>
  
      <li>Carp.pm = /usr/lib/perl5/Carp.pm</li>
  
      <li>Apache/Symbol.pm = /usr/lib/perl5/site_perl/Apache/Symbol.pm</li>
  
      <li>LWP/Debug.pm = /usr/lib/perl5/site_perl/LWP/Debug.pm</li>
  
      <li>DBI/Form2DB.pm = /usr/lib/perl5/site_perl/DBI/Form2DB.pm</li>
  
      <li>HTML/Embperl.pm = /usr/lib/perl5/site_perl/HTML/Embperl.pm</li>
  
      <li>File/Basename.pm = /usr/lib/perl5/File/Basename.pm</li>
  
      <li>Devel/Symdump.pm = /usr/lib/perl5/site_perl/Devel/Symdump.pm</li>
  
      <li>Apache/Constants.pm = /usr/lib/perl5/site_perl/Apache/Constants.pm</li>
  
      <li>DBD/mysql.pm = /usr/lib/perl5/site_perl/DBD/mysql.pm</li>
  
      <li>DBI.pm = /usr/lib/perl5/site_perl/DBI.pm</li>
  
      <li>DBD/Pg.pm = /usr/lib/perl5/site_perl/DBD/Pg.pm</li>
  
      <li>LWP/UserAgent.pm = /usr/lib/perl5/site_perl/LWP/UserAgent.pm</li>
  
      <li>URI/URL.pm = /usr/lib/perl5/site_perl/URI/URL.pm</li>
  
      <li>LWP.pm = /usr/lib/perl5/site_perl/LWP.pm</li>
  
      <li>HTTP/Status.pm = /usr/lib/perl5/site_perl/HTTP/Status.pm</li>
  
      <li>HTTP/Message.pm = /usr/lib/perl5/site_perl/HTTP/Message.pm</li>
  </ol>
  
  <hr>
  <P>UL Tag</P>
  <ul>
      <li>Apache/Status.pm = /usr/lib/perl5/site_perl/Apache/Status.pm</li>
  
      <li>Fcntl.pm = /usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</li>
  
      <li>IO.pm = /usr/lib/perl5/IO.pm</li>
  
      <li>Exporter.pm = /usr/lib/perl5/Exporter.pm</li>
  
      <li>strict.pm = /usr/lib/perl5/strict.pm</li>
  
      <li>DBIx/Compat.pm = /usr/lib/perl5/site_perl/DBIx/Compat.pm</li>
  
      <li>overload.pm = /usr/lib/perl5/i586-linux/5.00404/overload.pm</li>
  
      <li>vars.pm = /usr/lib/perl5/vars.pm</li>
  
      <li>subs.pm = /usr/lib/perl5/subs.pm</li>
  
      <li>Cwd.pm = /usr/lib/perl5/Cwd.pm</li>
  
      <li>LWP/MemberMixin.pm = /usr/lib/perl5/site_perl/LWP/MemberMixin.pm</li>
  
      <li>Safe.pm = /usr/lib/perl5/i586-linux/5.00404/Safe.pm</li>
  
      <li>SelectSaver.pm = /usr/lib/perl5/SelectSaver.pm</li>
  
      <li>Apache.pm = /usr/lib/perl5/site_perl/Apache.pm</li>
  
      <li>IO/Seekable.pm = /usr/lib/perl5/IO/Seekable.pm</li>
  
      <li>DynaLoader.pm = /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</li>
  
      <li>IO/File.pm = /usr/lib/perl5/IO/File.pm</li>
  
      <li>HTML/Entities.pm = /usr/lib/perl5/site_perl/HTML/Entities.pm</li>
  
      <li>Time/Local.pm = /usr/lib/perl5/Time/Local.pm</li>
  
      <li>Apache/Registry.pm = /usr/lib/perl5/site_perl/Apache/Registry.pm</li>
  
      <li>constant.pm = /usr/lib/perl5/constant.pm</li>
  
      <li>HTTP/Headers.pm = /usr/lib/perl5/site_perl/HTTP/Headers.pm</li>
  
      <li>FileHandle.pm = /usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</li>
  
      <li>HTTP/Date.pm = /usr/lib/perl5/site_perl/HTTP/Date.pm</li>
  
      <li>AutoLoader.pm = /usr/lib/perl5/AutoLoader.pm</li>
  
      <li>HTML/Parser.pm = /usr/lib/perl5/site_perl/HTML/Parser.pm</li>
  
      <li>CGI.pm = /usr/lib/perl5/CGI.pm</li>
  
      <li>IO/Handle.pm = /usr/lib/perl5/IO/Handle.pm</li>
  
      <li>LWP/Protocol.pm = /usr/lib/perl5/site_perl/LWP/Protocol.pm</li>
  
      <li>Apache/SIG.pm = /usr/lib/perl5/site_perl/Apache/SIG.pm</li>
  
      <li>Data/Dumper.pm = /usr/lib/perl5/site_perl/Data/Dumper.pm</li>
  
      <li>Config.pm = /usr/lib/perl5/i586-linux/5.00404/Config.pm</li>
  
      <li>Symbol.pm = /usr/lib/perl5/Symbol.pm</li>
  
      <li>HTTP/Request.pm = /usr/lib/perl5/site_perl/HTTP/Request.pm</li>
  
      <li>Opcode.pm = /usr/lib/perl5/i586-linux/5.00404/Opcode.pm</li>
  
      <li>HTTP/Response.pm = /usr/lib/perl5/site_perl/HTTP/Response.pm</li>
  
      <li>Apache/DBI.pm = /usr/lib/perl5/site_perl/Apache/DBI.pm</li>
  
      <li>DBIx/Recordset.pm = /usr/lib/perl5/site_perl/DBIx/Recordset.pm</li>
  
      <li>HTML/HeadParser.pm = /usr/lib/perl5/site_perl/HTML/HeadParser.pm</li>
  
      <li>Carp.pm = /usr/lib/perl5/Carp.pm</li>
  
      <li>Apache/Symbol.pm = /usr/lib/perl5/site_perl/Apache/Symbol.pm</li>
  
      <li>LWP/Debug.pm = /usr/lib/perl5/site_perl/LWP/Debug.pm</li>
  
      <li>DBI/Form2DB.pm = /usr/lib/perl5/site_perl/DBI/Form2DB.pm</li>
  
      <li>HTML/Embperl.pm = /usr/lib/perl5/site_perl/HTML/Embperl.pm</li>
  
      <li>File/Basename.pm = /usr/lib/perl5/File/Basename.pm</li>
  
      <li>Devel/Symdump.pm = /usr/lib/perl5/site_perl/Devel/Symdump.pm</li>
  
      <li>Apache/Constants.pm = /usr/lib/perl5/site_perl/Apache/Constants.pm</li>
  
      <li>DBD/mysql.pm = /usr/lib/perl5/site_perl/DBD/mysql.pm</li>
  
      <li>DBI.pm = /usr/lib/perl5/site_perl/DBI.pm</li>
  
      <li>DBD/Pg.pm = /usr/lib/perl5/site_perl/DBD/Pg.pm</li>
  
      <li>LWP/UserAgent.pm = /usr/lib/perl5/site_perl/LWP/UserAgent.pm</li>
  
      <li>URI/URL.pm = /usr/lib/perl5/site_perl/URI/URL.pm</li>
  
      <li>LWP.pm = /usr/lib/perl5/site_perl/LWP.pm</li>
  
      <li>HTTP/Status.pm = /usr/lib/perl5/site_perl/HTTP/Status.pm</li>
  
      <li>HTTP/Message.pm = /usr/lib/perl5/site_perl/HTTP/Message.pm</li>
  </ul>
  
  <hr>
  <form method="POST">
    <P>Select Tag</P>
  
      If you request this document with list.htm?sel=x you can specify which
      module of the dropdownlist is initialy selected<BR>
      eg. lists.htm?sel=Apache.pm
  
      <p><select name="sel" size="1">
          <option value="Apache/Status.pm">/usr/lib/perl5/site_perl/Apache/Status.pm</option>
      
          <option value="Fcntl.pm">/usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</option>
      
          <option value="IO.pm">/usr/lib/perl5/IO.pm</option>
      
          <option value="Exporter.pm">/usr/lib/perl5/Exporter.pm</option>
      
          <option value="strict.pm">/usr/lib/perl5/strict.pm</option>
      
          <option value="DBIx/Compat.pm">/usr/lib/perl5/site_perl/DBIx/Compat.pm</option>
      
          <option value="overload.pm">/usr/lib/perl5/i586-linux/5.00404/overload.pm</option>
      
          <option value="vars.pm">/usr/lib/perl5/vars.pm</option>
      
          <option value="subs.pm">/usr/lib/perl5/subs.pm</option>
      
          <option value="Cwd.pm">/usr/lib/perl5/Cwd.pm</option>
      
          <option value="LWP/MemberMixin.pm">/usr/lib/perl5/site_perl/LWP/MemberMixin.pm</option>
      
          <option value="Safe.pm">/usr/lib/perl5/i586-linux/5.00404/Safe.pm</option>
      
          <option value="SelectSaver.pm">/usr/lib/perl5/SelectSaver.pm</option>
      
          <option value="Apache.pm">/usr/lib/perl5/site_perl/Apache.pm</option>
      
          <option value="IO/Seekable.pm">/usr/lib/perl5/IO/Seekable.pm</option>
      
          <option value="DynaLoader.pm">/usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</option>
      
          <option value="IO/File.pm">/usr/lib/perl5/IO/File.pm</option>
      
          <option value="HTML/Entities.pm">/usr/lib/perl5/site_perl/HTML/Entities.pm</option>
      
          <option value="Time/Local.pm">/usr/lib/perl5/Time/Local.pm</option>
      
          <option value="Apache/Registry.pm">/usr/lib/perl5/site_perl/Apache/Registry.pm</option>
      
          <option value="constant.pm">/usr/lib/perl5/constant.pm</option>
      
          <option value="HTTP/Headers.pm">/usr/lib/perl5/site_perl/HTTP/Headers.pm</option>
      
          <option value="FileHandle.pm">/usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</option>
      
          <option value="HTTP/Date.pm">/usr/lib/perl5/site_perl/HTTP/Date.pm</option>
      
          <option value="AutoLoader.pm">/usr/lib/perl5/AutoLoader.pm</option>
      
          <option value="HTML/Parser.pm">/usr/lib/perl5/site_perl/HTML/Parser.pm</option>
      
          <option value="CGI.pm">/usr/lib/perl5/CGI.pm</option>
      
          <option value="IO/Handle.pm">/usr/lib/perl5/IO/Handle.pm</option>
      
          <option value="LWP/Protocol.pm">/usr/lib/perl5/site_perl/LWP/Protocol.pm</option>
      
          <option value="Apache/SIG.pm">/usr/lib/perl5/site_perl/Apache/SIG.pm</option>
      
          <option value="Data/Dumper.pm">/usr/lib/perl5/site_perl/Data/Dumper.pm</option>
      
          <option value="Config.pm">/usr/lib/perl5/i586-linux/5.00404/Config.pm</option>
      
          <option value="Symbol.pm">/usr/lib/perl5/Symbol.pm</option>
      
          <option value="HTTP/Request.pm">/usr/lib/perl5/site_perl/HTTP/Request.pm</option>
      
          <option value="Opcode.pm">/usr/lib/perl5/i586-linux/5.00404/Opcode.pm</option>
      
          <option value="HTTP/Response.pm">/usr/lib/perl5/site_perl/HTTP/Response.pm</option>
      
          <option value="Apache/DBI.pm">/usr/lib/perl5/site_perl/Apache/DBI.pm</option>
      
          <option value="DBIx/Recordset.pm">/usr/lib/perl5/site_perl/DBIx/Recordset.pm</option>
      
          <option value="HTML/HeadParser.pm">/usr/lib/perl5/site_perl/HTML/HeadParser.pm</option>
      
          <option value="Carp.pm">/usr/lib/perl5/Carp.pm</option>
      
          <option value="Apache/Symbol.pm">/usr/lib/perl5/site_perl/Apache/Symbol.pm</option>
      
          <option value="LWP/Debug.pm">/usr/lib/perl5/site_perl/LWP/Debug.pm</option>
      
          <option value="DBI/Form2DB.pm">/usr/lib/perl5/site_perl/DBI/Form2DB.pm</option>
      
          <option value="HTML/Embperl.pm">/usr/lib/perl5/site_perl/HTML/Embperl.pm</option>
      
          <option value="File/Basename.pm">/usr/lib/perl5/File/Basename.pm</option>
      
          <option value="Devel/Symdump.pm">/usr/lib/perl5/site_perl/Devel/Symdump.pm</option>
      
          <option value="Apache/Constants.pm">/usr/lib/perl5/site_perl/Apache/Constants.pm</option>
      
          <option value="DBD/mysql.pm">/usr/lib/perl5/site_perl/DBD/mysql.pm</option>
      
          <option value="DBI.pm">/usr/lib/perl5/site_perl/DBI.pm</option>
      
          <option value="DBD/Pg.pm">/usr/lib/perl5/site_perl/DBD/Pg.pm</option>
      
          <option value="LWP/UserAgent.pm">/usr/lib/perl5/site_perl/LWP/UserAgent.pm</option>
      
          <option value="URI/URL.pm">/usr/lib/perl5/site_perl/URI/URL.pm</option>
      
          <option value="LWP.pm">/usr/lib/perl5/site_perl/LWP.pm</option>
      
          <option value="HTTP/Status.pm">/usr/lib/perl5/site_perl/HTTP/Status.pm</option>
      
          <option value="HTTP/Message.pm">/usr/lib/perl5/site_perl/HTTP/Message.pm</option>
      </select></p>
  </form>
  
  <hr>
  <P>DL Tag</P>
  <dl>
      <dt>Apache/Status.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/Status.pm</dd>
  
      <dt>Fcntl.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</dd>
  
      <dt>IO.pm</dt>
      <dd>/usr/lib/perl5/IO.pm</dd>
  
      <dt>Exporter.pm</dt>
      <dd>/usr/lib/perl5/Exporter.pm</dd>
  
      <dt>strict.pm</dt>
      <dd>/usr/lib/perl5/strict.pm</dd>
  
      <dt>DBIx/Compat.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBIx/Compat.pm</dd>
  
      <dt>overload.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/overload.pm</dd>
  
      <dt>vars.pm</dt>
      <dd>/usr/lib/perl5/vars.pm</dd>
  
      <dt>subs.pm</dt>
      <dd>/usr/lib/perl5/subs.pm</dd>
  
      <dt>Cwd.pm</dt>
      <dd>/usr/lib/perl5/Cwd.pm</dd>
  
      <dt>LWP/MemberMixin.pm</dt>
      <dd>/usr/lib/perl5/site_perl/LWP/MemberMixin.pm</dd>
  
      <dt>Safe.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/Safe.pm</dd>
  
      <dt>SelectSaver.pm</dt>
      <dd>/usr/lib/perl5/SelectSaver.pm</dd>
  
      <dt>Apache.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache.pm</dd>
  
      <dt>IO/Seekable.pm</dt>
      <dd>/usr/lib/perl5/IO/Seekable.pm</dd>
  
      <dt>DynaLoader.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</dd>
  
      <dt>IO/File.pm</dt>
      <dd>/usr/lib/perl5/IO/File.pm</dd>
  
      <dt>HTML/Entities.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTML/Entities.pm</dd>
  
      <dt>Time/Local.pm</dt>
      <dd>/usr/lib/perl5/Time/Local.pm</dd>
  
      <dt>Apache/Registry.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/Registry.pm</dd>
  
      <dt>constant.pm</dt>
      <dd>/usr/lib/perl5/constant.pm</dd>
  
      <dt>HTTP/Headers.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Headers.pm</dd>
  
      <dt>FileHandle.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</dd>
  
      <dt>HTTP/Date.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Date.pm</dd>
  
      <dt>AutoLoader.pm</dt>
      <dd>/usr/lib/perl5/AutoLoader.pm</dd>
  
      <dt>HTML/Parser.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTML/Parser.pm</dd>
  
      <dt>CGI.pm</dt>
      <dd>/usr/lib/perl5/CGI.pm</dd>
  
      <dt>IO/Handle.pm</dt>
      <dd>/usr/lib/perl5/IO/Handle.pm</dd>
  
      <dt>LWP/Protocol.pm</dt>
      <dd>/usr/lib/perl5/site_perl/LWP/Protocol.pm</dd>
  
      <dt>Apache/SIG.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/SIG.pm</dd>
  
      <dt>Data/Dumper.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Data/Dumper.pm</dd>
  
      <dt>Config.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/Config.pm</dd>
  
      <dt>Symbol.pm</dt>
      <dd>/usr/lib/perl5/Symbol.pm</dd>
  
      <dt>HTTP/Request.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Request.pm</dd>
  
      <dt>Opcode.pm</dt>
      <dd>/usr/lib/perl5/i586-linux/5.00404/Opcode.pm</dd>
  
      <dt>HTTP/Response.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Response.pm</dd>
  
      <dt>Apache/DBI.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/DBI.pm</dd>
  
      <dt>DBIx/Recordset.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBIx/Recordset.pm</dd>
  
      <dt>HTML/HeadParser.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTML/HeadParser.pm</dd>
  
      <dt>Carp.pm</dt>
      <dd>/usr/lib/perl5/Carp.pm</dd>
  
      <dt>Apache/Symbol.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/Symbol.pm</dd>
  
      <dt>LWP/Debug.pm</dt>
      <dd>/usr/lib/perl5/site_perl/LWP/Debug.pm</dd>
  
      <dt>DBI/Form2DB.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBI/Form2DB.pm</dd>
  
      <dt>HTML/Embperl.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTML/Embperl.pm</dd>
  
      <dt>File/Basename.pm</dt>
      <dd>/usr/lib/perl5/File/Basename.pm</dd>
  
      <dt>Devel/Symdump.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Devel/Symdump.pm</dd>
  
      <dt>Apache/Constants.pm</dt>
      <dd>/usr/lib/perl5/site_perl/Apache/Constants.pm</dd>
  
      <dt>DBD/mysql.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBD/mysql.pm</dd>
  
      <dt>DBI.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBI.pm</dd>
  
      <dt>DBD/Pg.pm</dt>
      <dd>/usr/lib/perl5/site_perl/DBD/Pg.pm</dd>
  
      <dt>LWP/UserAgent.pm</dt>
      <dd>/usr/lib/perl5/site_perl/LWP/UserAgent.pm</dd>
  
      <dt>URI/URL.pm</dt>
      <dd>/usr/lib/perl5/site_perl/URI/URL.pm</dd>
  
      <dt>LWP.pm</dt>
      <dd>/usr/lib/perl5/site_perl/LWP.pm</dd>
  
      <dt>HTTP/Status.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Status.pm</dd>
  
      <dt>HTTP/Message.pm</dt>
      <dd>/usr/lib/perl5/site_perl/HTTP/Message.pm</dd>
  </dl>
  
  <hr>
  <P>MENU Tag</P>
  <menu>
      <li>Apache/Status.pm = /usr/lib/perl5/site_perl/Apache/Status.pm</li>
  
      <li>Fcntl.pm = /usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</li>
  
      <li>IO.pm = /usr/lib/perl5/IO.pm</li>
  
      <li>Exporter.pm = /usr/lib/perl5/Exporter.pm</li>
  
      <li>strict.pm = /usr/lib/perl5/strict.pm</li>
  
      <li>DBIx/Compat.pm = /usr/lib/perl5/site_perl/DBIx/Compat.pm</li>
  
      <li>overload.pm = /usr/lib/perl5/i586-linux/5.00404/overload.pm</li>
  
      <li>vars.pm = /usr/lib/perl5/vars.pm</li>
  
      <li>subs.pm = /usr/lib/perl5/subs.pm</li>
  
      <li>Cwd.pm = /usr/lib/perl5/Cwd.pm</li>
  
      <li>LWP/MemberMixin.pm = /usr/lib/perl5/site_perl/LWP/MemberMixin.pm</li>
  
      <li>Safe.pm = /usr/lib/perl5/i586-linux/5.00404/Safe.pm</li>
  
      <li>SelectSaver.pm = /usr/lib/perl5/SelectSaver.pm</li>
  
      <li>Apache.pm = /usr/lib/perl5/site_perl/Apache.pm</li>
  
      <li>IO/Seekable.pm = /usr/lib/perl5/IO/Seekable.pm</li>
  
      <li>DynaLoader.pm = /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</li>
  
      <li>IO/File.pm = /usr/lib/perl5/IO/File.pm</li>
  
      <li>HTML/Entities.pm = /usr/lib/perl5/site_perl/HTML/Entities.pm</li>
  
      <li>Time/Local.pm = /usr/lib/perl5/Time/Local.pm</li>
  
      <li>Apache/Registry.pm = /usr/lib/perl5/site_perl/Apache/Registry.pm</li>
  
      <li>constant.pm = /usr/lib/perl5/constant.pm</li>
  
      <li>HTTP/Headers.pm = /usr/lib/perl5/site_perl/HTTP/Headers.pm</li>
  
      <li>FileHandle.pm = /usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</li>
  
      <li>HTTP/Date.pm = /usr/lib/perl5/site_perl/HTTP/Date.pm</li>
  
      <li>AutoLoader.pm = /usr/lib/perl5/AutoLoader.pm</li>
  
      <li>HTML/Parser.pm = /usr/lib/perl5/site_perl/HTML/Parser.pm</li>
  
      <li>CGI.pm = /usr/lib/perl5/CGI.pm</li>
  
      <li>IO/Handle.pm = /usr/lib/perl5/IO/Handle.pm</li>
  
      <li>LWP/Protocol.pm = /usr/lib/perl5/site_perl/LWP/Protocol.pm</li>
  
      <li>Apache/SIG.pm = /usr/lib/perl5/site_perl/Apache/SIG.pm</li>
  
      <li>Data/Dumper.pm = /usr/lib/perl5/site_perl/Data/Dumper.pm</li>
  
      <li>Config.pm = /usr/lib/perl5/i586-linux/5.00404/Config.pm</li>
  
      <li>Symbol.pm = /usr/lib/perl5/Symbol.pm</li>
  
      <li>HTTP/Request.pm = /usr/lib/perl5/site_perl/HTTP/Request.pm</li>
  
      <li>Opcode.pm = /usr/lib/perl5/i586-linux/5.00404/Opcode.pm</li>
  
      <li>HTTP/Response.pm = /usr/lib/perl5/site_perl/HTTP/Response.pm</li>
  
      <li>Apache/DBI.pm = /usr/lib/perl5/site_perl/Apache/DBI.pm</li>
  
      <li>DBIx/Recordset.pm = /usr/lib/perl5/site_perl/DBIx/Recordset.pm</li>
  
      <li>HTML/HeadParser.pm = /usr/lib/perl5/site_perl/HTML/HeadParser.pm</li>
  
      <li>Carp.pm = /usr/lib/perl5/Carp.pm</li>
  
      <li>Apache/Symbol.pm = /usr/lib/perl5/site_perl/Apache/Symbol.pm</li>
  
      <li>LWP/Debug.pm = /usr/lib/perl5/site_perl/LWP/Debug.pm</li>
  
      <li>DBI/Form2DB.pm = /usr/lib/perl5/site_perl/DBI/Form2DB.pm</li>
  
      <li>HTML/Embperl.pm = /usr/lib/perl5/site_perl/HTML/Embperl.pm</li>
  
      <li>File/Basename.pm = /usr/lib/perl5/File/Basename.pm</li>
  
      <li>Devel/Symdump.pm = /usr/lib/perl5/site_perl/Devel/Symdump.pm</li>
  
      <li>Apache/Constants.pm = /usr/lib/perl5/site_perl/Apache/Constants.pm</li>
  
      <li>DBD/mysql.pm = /usr/lib/perl5/site_perl/DBD/mysql.pm</li>
  
      <li>DBI.pm = /usr/lib/perl5/site_perl/DBI.pm</li>
  
      <li>DBD/Pg.pm = /usr/lib/perl5/site_perl/DBD/Pg.pm</li>
  
      <li>LWP/UserAgent.pm = /usr/lib/perl5/site_perl/LWP/UserAgent.pm</li>
  
      <li>URI/URL.pm = /usr/lib/perl5/site_perl/URI/URL.pm</li>
  
      <li>LWP.pm = /usr/lib/perl5/site_perl/LWP.pm</li>
  
      <li>HTTP/Status.pm = /usr/lib/perl5/site_perl/HTTP/Status.pm</li>
  
      <li>HTTP/Message.pm = /usr/lib/perl5/site_perl/HTTP/Message.pm</li>
  </menu>
  
  <hr>
  <P>DIR Tag</P>
  <dir>
      <li>Apache/Status.pm = /usr/lib/perl5/site_perl/Apache/Status.pm</li>
  
      <li>Fcntl.pm = /usr/lib/perl5/i586-linux/5.00404/Fcntl.pm</li>
  
      <li>IO.pm = /usr/lib/perl5/IO.pm</li>
  
      <li>Exporter.pm = /usr/lib/perl5/Exporter.pm</li>
  
      <li>strict.pm = /usr/lib/perl5/strict.pm</li>
  
      <li>DBIx/Compat.pm = /usr/lib/perl5/site_perl/DBIx/Compat.pm</li>
  
      <li>overload.pm = /usr/lib/perl5/i586-linux/5.00404/overload.pm</li>
  
      <li>vars.pm = /usr/lib/perl5/vars.pm</li>
  
      <li>subs.pm = /usr/lib/perl5/subs.pm</li>
  
      <li>Cwd.pm = /usr/lib/perl5/Cwd.pm</li>
  
      <li>LWP/MemberMixin.pm = /usr/lib/perl5/site_perl/LWP/MemberMixin.pm</li>
  
      <li>Safe.pm = /usr/lib/perl5/i586-linux/5.00404/Safe.pm</li>
  
      <li>SelectSaver.pm = /usr/lib/perl5/SelectSaver.pm</li>
  
      <li>Apache.pm = /usr/lib/perl5/site_perl/Apache.pm</li>
  
      <li>IO/Seekable.pm = /usr/lib/perl5/IO/Seekable.pm</li>
  
      <li>DynaLoader.pm = /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm</li>
  
      <li>IO/File.pm = /usr/lib/perl5/IO/File.pm</li>
  
      <li>HTML/Entities.pm = /usr/lib/perl5/site_perl/HTML/Entities.pm</li>
  
      <li>Time/Local.pm = /usr/lib/perl5/Time/Local.pm</li>
  
      <li>Apache/Registry.pm = /usr/lib/perl5/site_perl/Apache/Registry.pm</li>
  
      <li>constant.pm = /usr/lib/perl5/constant.pm</li>
  
      <li>HTTP/Headers.pm = /usr/lib/perl5/site_perl/HTTP/Headers.pm</li>
  
      <li>FileHandle.pm = /usr/lib/perl5/i586-linux/5.00404/FileHandle.pm</li>
  
      <li>HTTP/Date.pm = /usr/lib/perl5/site_perl/HTTP/Date.pm</li>
  
      <li>AutoLoader.pm = /usr/lib/perl5/AutoLoader.pm</li>
  
      <li>HTML/Parser.pm = /usr/lib/perl5/site_perl/HTML/Parser.pm</li>
  
      <li>CGI.pm = /usr/lib/perl5/CGI.pm</li>
  
      <li>IO/Handle.pm = /usr/lib/perl5/IO/Handle.pm</li>
  
      <li>LWP/Protocol.pm = /usr/lib/perl5/site_perl/LWP/Protocol.pm</li>
  
      <li>Apache/SIG.pm = /usr/lib/perl5/site_perl/Apache/SIG.pm</li>
  
      <li>Data/Dumper.pm = /usr/lib/perl5/site_perl/Data/Dumper.pm</li>
  
      <li>Config.pm = /usr/lib/perl5/i586-linux/5.00404/Config.pm</li>
  
      <li>Symbol.pm = /usr/lib/perl5/Symbol.pm</li>
  
      <li>HTTP/Request.pm = /usr/lib/perl5/site_perl/HTTP/Request.pm</li>
  
      <li>Opcode.pm = /usr/lib/perl5/i586-linux/5.00404/Opcode.pm</li>
  
      <li>HTTP/Response.pm = /usr/lib/perl5/site_perl/HTTP/Response.pm</li>
  
      <li>Apache/DBI.pm = /usr/lib/perl5/site_perl/Apache/DBI.pm</li>
  
      <li>DBIx/Recordset.pm = /usr/lib/perl5/site_perl/DBIx/Recordset.pm</li>
  
      <li>HTML/HeadParser.pm = /usr/lib/perl5/site_perl/HTML/HeadParser.pm</li>
  
      <li>Carp.pm = /usr/lib/perl5/Carp.pm</li>
  
      <li>Apache/Symbol.pm = /usr/lib/perl5/site_perl/Apache/Symbol.pm</li>
  
      <li>LWP/Debug.pm = /usr/lib/perl5/site_perl/LWP/Debug.pm</li>
  
      <li>DBI/Form2DB.pm = /usr/lib/perl5/site_perl/DBI/Form2DB.pm</li>
  
      <li>HTML/Embperl.pm = /usr/lib/perl5/site_perl/HTML/Embperl.pm</li>
  
      <li>File/Basename.pm = /usr/lib/perl5/File/Basename.pm</li>
  
      <li>Devel/Symdump.pm = /usr/lib/perl5/site_perl/Devel/Symdump.pm</li>
  
      <li>Apache/Constants.pm = /usr/lib/perl5/site_perl/Apache/Constants.pm</li>
  
      <li>DBD/mysql.pm = /usr/lib/perl5/site_perl/DBD/mysql.pm</li>
  
      <li>DBI.pm = /usr/lib/perl5/site_perl/DBI.pm</li>
  
      <li>DBD/Pg.pm = /usr/lib/perl5/site_perl/DBD/Pg.pm</li>
  
      <li>LWP/UserAgent.pm = /usr/lib/perl5/site_perl/LWP/UserAgent.pm</li>
  
      <li>URI/URL.pm = /usr/lib/perl5/site_perl/URI/URL.pm</li>
  
      <li>LWP.pm = /usr/lib/perl5/site_perl/LWP.pm</li>
  
      <li>HTTP/Status.pm = /usr/lib/perl5/site_perl/HTTP/Status.pm</li>
  
      <li>HTTP/Message.pm = /usr/lib/perl5/site_perl/HTTP/Message.pm</li>
  </dir>
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/lists.src.html
  
  Index: lists.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  &lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"&gt;<br>
  &lt;html&gt;<br>
  <br>
  &lt;head&gt;<br>
  &lt;meta http-equiv="Content-Type"<br>
  content="text/html; charset=iso-8859-1"&gt;<br>
  &lt;title&gt;Lists&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  <br>
  &lt;body bgcolor="#FFFFFF"&gt;<br>
  <br>
  &lt;p&gt;[- @k = keys %INC -]&lt;br&gt;<br>
  [- @v = values %INC -]&lt;br&gt;<br>
  &lt;/p&gt;<br>
  &lt;hr&gt;<br>
  &lt;P&gt;OL Tag&lt;/P&gt;<br>
  &lt;ol&gt;<br>
      &lt;li&gt;[+ $k[$row] +] = [+ $v[$row] +]&lt;/li&gt;<br>
  &lt;/ol&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;P&gt;UL Tag&lt;/P&gt;<br>
  &lt;ul&gt;<br>
      &lt;li&gt;[+ $k[$row] +] = [+ $v[$row] +]&lt;/li&gt;<br>
  &lt;/ul&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;form method="POST"&gt;<br>
    &lt;P&gt;Select Tag&lt;/P&gt;<br>
  <br>
      If you request this document with list.htm?sel=x you can specify which<br>
      module of the dropdownlist is initialy selected&lt;BR&gt;<br>
      eg. lists.htm?sel=Apache.pm<br>
  <br>
      &lt;p&gt;&lt;select name="sel" size="1"&gt;<br>
          &lt;option value="[+ $k[$row] +]"&gt;[+ $v[$row] +]&lt;/option&gt;<br>
      &lt;/select&gt;&lt;/p&gt;<br>
  &lt;/form&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;P&gt;DL Tag&lt;/P&gt;<br>
  &lt;dl&gt;<br>
      &lt;dt&gt;[+ $k[$row] +]&lt;/dt&gt;<br>
      &lt;dd&gt;[+ $v[$row] +]&lt;/dd&gt;<br>
  &lt;/dl&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;P&gt;MENU Tag&lt;/P&gt;<br>
  &lt;menu&gt;<br>
      &lt;li&gt;[+ $k[$row] +] = [+ $v[$row] +]&lt;/li&gt;<br>
  &lt;/menu&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;P&gt;DIR Tag&lt;/P&gt;<br>
  &lt;dir&gt;<br>
      &lt;li&gt;[+ $k[$row] +] = [+ $v[$row] +]&lt;/li&gt;<br>
  &lt;/dir&gt;<br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/loop.ep.html
  
  Index: loop.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - Loop Metacommands</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Loop Metacommands</h1>
  <hr><h3>This is a example of using the while metacommand in embperl to show the environement</h3>
  <br>
  [$ while ($k, $v) = each (%ENV) $]<br>
  	[+ $k +] = [+ $v +] <BR>
  [$ endwhile $]<br>
  <br>
  <hr><h3>This is a example of using the while metacommand to show the loaded
  modules, with using an index</h3>
  <br>
  [- $i = 0; @k = keys %INC -]<br>
  [$ while ($i &lt; $#k) $]<br>
  [+ $k[$i] +] = [+ $INC{$k[$i]} +]<BR>
  [- $i++ -]<br>
  [$ endwhile $]<br>
  <br>
  <hr><h3>This is a example of using the do .. until metacommand to show the array @arr = (3,5,7)</h3>
  <br>
  [- @arr = (3, 5, 7); $i = 0 -]<br>
  [$ do $]<br>
  [+ $arr[ $i++ ] +]<br>
  [$ until $i > $#arr $]<br>
  <br>
  
  <hr><h3>This is a example of using the foreach metacommand to show the list (1..10)</h3>
  <br>
  [$ foreach $v (1..10) $]<br>
  [+ $v +]<br>
  [$ endforeach $]<br>
  <br>
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/loop.html
  
  Index: loop.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - Loop Metacommands</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Loop Metacommands</h1>
  <hr><h3>This is a example of using the while metacommand in embperl to show the environement</h3>
  
  
  	SERVER_SOFTWARE = Apache/1.3.0 (Unix) <BR>
  
  	DOCUMENT_ROOT = /local/www/data <BR>
  
  	GATEWAY_INTERFACE = CGI-Perl/1.1 <BR>
  
  	REMOTE_ADDR = 195.52.12.194 <BR>
  
  	SERVER_PROTOCOL = HTTP/1.1 <BR>
  
  	REQUEST_METHOD = GET <BR>
  
  	TestEnv = 1234 <BR>
  
  	HTTP_USER_AGENT = Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) <BR>
  
  	QUERY_STRING =  <BR>
  
  	PATH = /bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin <BR>
  
  	EMBPERL_VIRTLOG = /embperl-log <BR>
  
  	HTTP_CONNECTION = Keep-Alive <BR>
  
  	HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */* <BR>
  
  	REMOTE_PORT = 1065 <BR>
  
  	HTTP_ACCEPT_LANGUAGE = de <BR>
  
  	MOD_PERL = 1.11 <BR>
  
  	EMBPERL_OPTIONS = 0 <BR>
  
  	SCRIPT_FILENAME = /usr/msrc/embperl/eg/x/loop.htm <BR>
  
  	HTTP_ACCEPT_ENCODING = gzip, deflate <BR>
  
  	SCRIPT_NAME = /embperl/x/loop.htm <BR>
  
  	SERVER_NAME = venus.gr.ecos.de <BR>
  
  	REQUEST_URI = /embperl/x/loop.htm <BR>
  
  	SERVER_PORT = 8765 <BR>
  
  	HTTP_HOST = www.gr.ecos.de:8765 <BR>
  
  	PATH_TRANSLATED = /usr/msrc/embperl/eg/x/loop.htm <BR>
  
  	SERVER_ADMIN = root@venus.gr.ecos.de <BR>
  
  
  <hr><h3>This is a example of using the while metacommand to show the loaded
  modules, with using an index</h3>
  
  
  
  Apache/Status.pm = /usr/lib/perl5/site_perl/Apache/Status.pm<BR>
  
  
  Fcntl.pm = /usr/lib/perl5/i586-linux/5.00404/Fcntl.pm<BR>
  
  
  IO.pm = /usr/lib/perl5/IO.pm<BR>
  
  
  Exporter.pm = /usr/lib/perl5/Exporter.pm<BR>
  
  
  strict.pm = /usr/lib/perl5/strict.pm<BR>
  
  
  overload.pm = /usr/lib/perl5/i586-linux/5.00404/overload.pm<BR>
  
  
  vars.pm = /usr/lib/perl5/vars.pm<BR>
  
  
  subs.pm = /usr/lib/perl5/subs.pm<BR>
  
  
  Cwd.pm = /usr/lib/perl5/Cwd.pm<BR>
  
  
  LWP/MemberMixin.pm = /usr/lib/perl5/site_perl/LWP/MemberMixin.pm<BR>
  
  
  Safe.pm = /usr/lib/perl5/i586-linux/5.00404/Safe.pm<BR>
  
  
  SelectSaver.pm = /usr/lib/perl5/SelectSaver.pm<BR>
  
  
  Apache.pm = /usr/lib/perl5/site_perl/Apache.pm<BR>
  
  
  IO/Seekable.pm = /usr/lib/perl5/IO/Seekable.pm<BR>
  
  
  DynaLoader.pm = /usr/lib/perl5/i586-linux/5.00404/DynaLoader.pm<BR>
  
  
  IO/File.pm = /usr/lib/perl5/IO/File.pm<BR>
  
  
  HTML/Entities.pm = /usr/lib/perl5/site_perl/HTML/Entities.pm<BR>
  
  
  Time/Local.pm = /usr/lib/perl5/Time/Local.pm<BR>
  
  
  Apache/Registry.pm = /usr/lib/perl5/site_perl/Apache/Registry.pm<BR>
  
  
  constant.pm = /usr/lib/perl5/constant.pm<BR>
  
  
  HTTP/Headers.pm = /usr/lib/perl5/site_perl/HTTP/Headers.pm<BR>
  
  
  FileHandle.pm = /usr/lib/perl5/i586-linux/5.00404/FileHandle.pm<BR>
  
  
  HTTP/Date.pm = /usr/lib/perl5/site_perl/HTTP/Date.pm<BR>
  
  
  AutoLoader.pm = /usr/lib/perl5/AutoLoader.pm<BR>
  
  
  HTML/Parser.pm = /usr/lib/perl5/site_perl/HTML/Parser.pm<BR>
  
  
  CGI.pm = /usr/lib/perl5/CGI.pm<BR>
  
  
  IO/Handle.pm = /usr/lib/perl5/IO/Handle.pm<BR>
  
  
  LWP/Protocol.pm = /usr/lib/perl5/site_perl/LWP/Protocol.pm<BR>
  
  
  Apache/SIG.pm = /usr/lib/perl5/site_perl/Apache/SIG.pm<BR>
  
  
  Data/Dumper.pm = /usr/lib/perl5/site_perl/Data/Dumper.pm<BR>
  
  
  Config.pm = /usr/lib/perl5/i586-linux/5.00404/Config.pm<BR>
  
  
  Symbol.pm = /usr/lib/perl5/Symbol.pm<BR>
  
  
  HTTP/Request.pm = /usr/lib/perl5/site_perl/HTTP/Request.pm<BR>
  
  
  Opcode.pm = /usr/lib/perl5/i586-linux/5.00404/Opcode.pm<BR>
  
  
  HTTP/Response.pm = /usr/lib/perl5/site_perl/HTTP/Response.pm<BR>
  
  
  Apache/DBI.pm = /usr/lib/perl5/site_perl/Apache/DBI.pm<BR>
  
  
  HTML/HeadParser.pm = /usr/lib/perl5/site_perl/HTML/HeadParser.pm<BR>
  
  
  Carp.pm = /usr/lib/perl5/Carp.pm<BR>
  
  
  Apache/Symbol.pm = /usr/lib/perl5/site_perl/Apache/Symbol.pm<BR>
  
  
  LWP/Debug.pm = /usr/lib/perl5/site_perl/LWP/Debug.pm<BR>
  
  
  DBI/Form2DB.pm = /usr/lib/perl5/site_perl/DBI/Form2DB.pm<BR>
  
  
  HTML/Embperl.pm = /usr/lib/perl5/site_perl/HTML/Embperl.pm<BR>
  
  
  File/Basename.pm = /usr/lib/perl5/File/Basename.pm<BR>
  
  
  Devel/Symdump.pm = /usr/lib/perl5/site_perl/Devel/Symdump.pm<BR>
  
  
  Apache/Constants.pm = /usr/lib/perl5/site_perl/Apache/Constants.pm<BR>
  
  
  DBD/mysql.pm = /usr/lib/perl5/site_perl/DBD/mysql.pm<BR>
  
  
  DBI.pm = /usr/lib/perl5/site_perl/DBI.pm<BR>
  
  
  DBD/Pg.pm = /usr/lib/perl5/site_perl/DBD/Pg.pm<BR>
  
  
  LWP/UserAgent.pm = /usr/lib/perl5/site_perl/LWP/UserAgent.pm<BR>
  
  
  URI/URL.pm = /usr/lib/perl5/site_perl/URI/URL.pm<BR>
  
  
  LWP.pm = /usr/lib/perl5/site_perl/LWP.pm<BR>
  
  
  HTTP/Status.pm = /usr/lib/perl5/site_perl/HTTP/Status.pm<BR>
  
  
  
  <hr><h3>This is a example of using the do .. until metacommand to show the array @arr = (3,5,7)</h3>
  
  
  
  3
  
  5
  
  7
  
  
  
  <hr><h3>This is a example of using the foreach metacommand to show the list (1..10)</h3>
  
  
  1
  
  2
  
  3
  
  4
  
  5
  
  6
  
  7
  
  8
  
  9
  
  10
  
  
  
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/loop.src.html
  
  Index: loop.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - Loop Metacommands&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - Loop Metacommands&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the while metacommand in embperl to show the environement&lt;/h3&gt;<br>
  <br>
  [$ while ($k, $v) = each (%ENV) $]<br>
  	[+ $k +] = [+ $v +] &lt;BR&gt;<br>
  [$ endwhile $]<br>
  <br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the while metacommand to show the loaded<br>
  modules, with using an index&lt;/h3&gt;<br>
  <br>
  [- $i = 0; @k = keys %INC -]<br>
  [$ while ($i &lt; $#k) $]<br>
  [+ $k[$i] +] = [+ $INC{$k[$i]} +]&lt;BR&gt;<br>
  [- $i++ -]<br>
  [$ endwhile $]<br>
  <br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the do .. until metacommand to show the array @arr = (3,5,7)&lt;/h3&gt;<br>
  <br>
  [- @arr = (3, 5, 7); $i = 0 -]<br>
  [$ do $]<br>
  [+ $arr[ $i++ ] +]<br>
  [$ until $i &gt; $#arr $]<br>
  <br>
  <br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the foreach metacommand to show the list (1..10)&lt;/h3&gt;<br>
  <br>
  [$ foreach $v (1..10) $]<br>
  [+ $v +]<br>
  [$ endforeach $]<br>
  <br>
  <br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/neu.ep.html
  
  Index: neu.ep.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3O/DTD HTML//EN">
  
  <html>
  <head>
  <title>Example for creating a wizard with Embperl</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  <p>[- $b = defined($fdat{back})-][- $c =
  defined($fdat{cont})-][-$kn = $fdat{Kundennummer} eq 'Ja'-][-$p =
  $fdat{page}<br>
  -][$if $p==0 or ($p==2 and $b) or ($p==4 and $b and !$kn)$]</p>
  <h1 align="center">Eintragen eines neuen Objekts</h1>
  <div align="center"><center>
  <table border="2" cellpadding="3" cellspacing="6" width="500">
      <tr>
          <td width="100%">Um eine neues Objekt welches Sie
          anbieten, mieten oder kaufen m&ouml;chten einzutragen
          ben&ouml;tigen wir zuerst Ihre pers&ouml;nlichen Daten. 
          <p>Haben Sie bereits eine Kundennummer bei uns? </p>
          <form action="neu.htm" method="GET">
              <input type="hidden" name="page" value="1">
              <blockquote>
                  <p align="left"><input type="radio"
                  name="Kundennummer" value="Ja">Ja, ich habe
                  bereits eine Kundennummer<br>
                  <input type="radio" checked name="Kundennummer"
                  value="Nein">Nein, ich habe keine Kundennummer</p>
              </blockquote>
              <p align="center"><input type="submit" name="back"
              value="&lt;&lt; Zur&uuml;ck"> <input type="submit"
              name="cont" value="Weiter &gt;&gt;"> <input
              type="submit" name="cancel" value="Abbrechen">[$hidden$]</p>
          </form>
          </td>
      </tr>
  </table>
  </center></div>
  <p>&#160;</p>
  <p>&#160;[$elsif $kn and (($p==1 and $c) or ($p==3 and $b))$] </p>
  <div align="center"><center>
  <table border="2" cellpadding="3" cellspacing="6" width="500">
      <tr>
          <td width="100%">Geben Sie bitte Ihre Kundennummer ein,
          wenn Sie diese nicht zur Hand haben k&ouml;nnen Sie auch
          nach Ihrere Kundennummer suchen, indem Sie die Felder
          Name und/oder Firma ausf&uuml;llen. 
          <form action="neu.htm" method="POST">
              <input type="hidden" name="page" value="2">
              <blockquote>
                  <p align="left">&#160;</p>
              </blockquote>
              <table width="100%">
                  <tr>
                      <td width="50%">
                      <p align="right">Kundennummer: </p>
                      </td>
                      <td width="50%"><input type="text" size="20"
                      maxlength="20" name="kdnr"></td>
                  </tr>
                  <tr>
                      <td width="50%">
                      <p align="right">Name: </p>
                      </td>
                      <td width="50%"><input type="text" size="20"
                      maxlength="20" name="Name"></td>
                  </tr>
                  <tr>
                      <td width="50%">
                      <p align="right">Firma: </p>
                      </td>
                      <td width="50%"><input type="text" size="20"
                      maxlength="20" name="Firma"></td>
                  </tr>
              </table>
              <p align="center"><input type="submit" name="back"
              value="&lt;&lt; Zur&uuml;ck"> <input type="submit"
              name="cont" value="Weiter &gt;&gt;"> <input
              type="submit" name="cancel" value="Abbrechen">[$hidden$]</p>
          </form>
          </td>
      </tr>
  </table>
  </center></div>
  <p>&#160;</p>
  <p>&#160;</p>
  <p>&#160;[$elsif $kn and (($p==2 and $c) or ($p==5 and $b))$]</p>
  <p>&#160;</p>
  <div align="center"><center>
  <table border="2" cellpadding="3" cellspacing="6" width="500">
      <tr>
          <td width="100%">Es wurden mehere Personen gefunden die
          auf Ihrer Angaben zutreffen. Bitte w&auml;hlen Sie die
          richtige aus. 
          <form action="neu.htm" method="POST">
              <input type="hidden" name="page" value="3">
              <blockquote>
                  <div align="center"><center>
                  [- $AdrData[0]{Kdnr} = 123; $AdrData[0]{Name} = 'Mr. X'; $AdrData[0]{Ort} = 'Somewhere'; 
                     $AdrData[1]{Kdnr} = 234; $AdrData[1]{Name} = 'Mr. Y'; $AdrData[1]{Ort} = 'Anywhere'; 
                     $AdrData[2]{Kdnr} = 345; $AdrData[2]{Name} = 'Note: Database query is missing'; $AdrData[2]{Ort} = ''; 
                     $AdrData[3]{Kdnr} = 456; $AdrData[3]{Name} = 'This are only '; $AdrData[3]{Ort} = 'dummys'; -]
  				<table width="90%">
                      <tr>
                          <td width="100%"><input type="radio"
                          name="kdnr"
                          value="[+$AdrData[$row]{Kdnr}+]">
  						[+$AdrData[$row]{Name}+]
                          [+$AdrData[$row]{Ort} +]</td>
                      </tr>
                  </table>
                  </center></div>
              </blockquote>
              <p align="center"><input type="submit" name="back"
              value="&lt;&lt; Zur&uuml;ck"> <input type="submit"
              name="cont" value="Weiter &gt;&gt;"> <input
              type="submit" name="cancel" value="Abbrechen">[$hidden$]</p>
          </form>
          </td>
      </tr>
  </table>
  </center></div>
  <p>&#160;</p>
  <p>&#160;</p>
  <p>&#160;[$elsif !$kn and<br>
  (($p==1 and $c) or<br>
  ($p==5 and $b))$]</p>
  <div align="center"><center>
  <table border="2" cellpadding="3" cellspacing="6" width="500">
      <tr>
          <td width="100%">Geben Sie bitte hier pers&ouml;nnlichen
          Daten ein. 
          <form action="neu.htm" method="POST">
              <input type="hidden" name="page" value="4"><div
              align="center"><center>
              <table width="100%">
                  <tr>
                      <td align="right" width="15%">Firma: </td>
                      <td colspan="3" width="35%"><input
                      type="text" size="70" maxlength="70"
                      name="Firma"></td>
                      <td align="right" width="15%">
                      <p align="right">&#160;</p>
                      </td>
                      <td width="35%"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">Anrede: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Anrede"></td>
                      <td align="right" width="15%">
                      <p align="right">&#160;</p>
                      </td>
                      <td width="35%"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">Name: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Name"></td>
                      <td align="right" width="15%">
                      <p align="right">Vorname: </p>
                      </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Vorname"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">Stra&szlig;e: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Strasse"></td>
                      <td align="right" width="15%">
                      <p align="right">Postfach: </p>
                      </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Postfach"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">Plz: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Plz"></td>
                      <td align="right" width="15%">
                      <p align="right">Ort: </p>
                      </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Ort"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">Telefon: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Telefon"></td>
                      <td align="right" width="15%">
                      <p align="right">Telefax: </p>
                      </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="Telefax"></td>
                  </tr>
                  <tr>
                      <td align="right" width="15%">E-Mail: </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="EMail"></td>
                      <td align="right" width="15%">
                      <p align="right">WWW Adresse:</p>
                      </td>
                      <td width="35%"><input type="text" size="30"
                      maxlength="40" name="WWW"></td>
                  </tr>
              </table>
              </center></div>
              <p align="center"><input type="submit" name="back"
              value="&lt;&lt; Zur&uuml;ck"> <input type="submit"
              name="cont" value="Weiter &gt;&gt;"> <input
              type="submit" name="cancel" value="Abbrechen">[$hidden$]</p>
          </form>
          </td>
      </tr>
  </table>
  </center></div>
  <p>&#160;</p>
  <p>[$elsif ($p==4 &amp;&amp; $c) || ($p==3 &amp;&amp; $c)$]</p>
  <div align="center"><center>
  <table border="2" cellpadding="3" cellspacing="6" width="500">
      <tr>
          <td width="100%">Wenn Sie jetzt auf <strong>Abspeichern</strong>
          klicken, werden folgende Daten von Ihnen gespeichert:<br>
          <div align="center"><center> 
          <table width="100%">
              <tr>
                  <td align="right" width="15%"><strong>Firma:</strong> </td>
                  <td colspan="3" width="35%">[+$fdat{Firma}+]</td>
                  <td align="right" width="15%">
                  <p align="right">&#160;</p>
                  </td>
                  <td width="35%"></td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>Anrede:</strong> </td>
                  <td width="35%">[+$fdat{Anrede}+]</td>
                  <td align="right" width="15%">
                  <p align="right">&#160;</p>
                  </td>
                  <td width="35%"></td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>Name:</strong> </td>
                  <td width="35%">[+$fdat{Name}+]</td>
                  <td align="right" width="15%">
                  <p align="right"><strong>Vorname:</strong> </p>
                  </td>
                  <td width="35%">[+$fdat{Vorname}+]</td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>Stra&szlig;e:</strong> </td>
                  <td width="35%">[+$fdat{Strasse}+]</td>
                  <td align="right" width="15%">
                  <p align="right"><strong>Postfach:</strong> </p>
                  </td>
                  <td width="35%">[+$fdat{Postfach}+]</td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>Plz:</strong> </td>
                  <td width="35%">[+$fdat{Plz}+]</td>
                  <td align="right" width="15%">
                  <p align="right"><strong>Ort:</strong> </p>
                  </td>
                  <td width="35%">[+$fdat{Ort}+]</td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>Telefon:</strong> </td>
                  <td width="35%">[+$fdat{Telefon}+]</td>
                  <td align="right" width="15%">
                  <p align="right"><strong>Telefax:</strong> </p>
                  </td>
                  <td width="35%">[+$fdat{Telefax}+]</td>
              </tr>
              <tr>
                  <td align="right" width="15%"><strong>E-Mail:</strong> </td>
                  <td width="35%">[+$fdat{EMail}+]</td>
                  <td align="right" width="15%">
                  <p align="right"><strong>WWW Adresse:</strong></p>
                  </td>
                  <td width="35%">[+$fdat{WWW}+]</td>
              </tr>
          </table>
          </center></div> 
          <form action="neu.htm" method="POST">
              <input type="hidden" name="page" value="5">
              <p align="center"><input type="submit" name="back"
              value="&lt;&lt; Zur&uuml;ck"> <input type="submit"
              name="cont" value="Abspeichern"> <input type="submit"
              name="cancel" value="Abbrechen">[$hidden$]</p>
          </form>
          </td>
      </tr>
  </table>
  </center></div>
  <p>&#160;</p>
  <p>[$endif$]&#160;</p>
  <p>&#160;</p>
  <p>&#160;</p>
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/neu.src.html
  
  Index: neu.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  &lt;!DOCTYPE HTML PUBLIC "-//W3O/DTD HTML//EN"&gt;<br>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Example for creating a wizard with Embperl&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  &lt;p&gt;[- $b = defined($fdat{back})-][- $c =<br>
  defined($fdat{cont})-][-$kn = $fdat{Kundennummer} eq 'Ja'-][-$p =<br>
  $fdat{page}&lt;br&gt;<br>
  -][$if $p==0 or ($p==2 and $b) or ($p==4 and $b and !$kn)$]&lt;/p&gt;<br>
  &lt;h1 align="center"&gt;Eintragen eines neuen Objekts&lt;/h1&gt;<br>
  &lt;div align="center"&gt;&lt;center&gt;<br>
  &lt;table border="2" cellpadding="3" cellspacing="6" width="500"&gt;<br>
      &lt;tr&gt;<br>
          &lt;td width="100%"&gt;Um eine neues Objekt welches Sie<br>
          anbieten, mieten oder kaufen m&ouml;chten einzutragen<br>
          ben&ouml;tigen wir zuerst Ihre pers&ouml;nlichen Daten. <br>
          &lt;p&gt;Haben Sie bereits eine Kundennummer bei uns? &lt;/p&gt;<br>
          &lt;form action="neu.htm" method="GET"&gt;<br>
              &lt;input type="hidden" name="page" value="1"&gt;<br>
              &lt;blockquote&gt;<br>
                  &lt;p align="left"&gt;&lt;input type="radio"<br>
                  name="Kundennummer" value="Ja"&gt;Ja, ich habe<br>
                  bereits eine Kundennummer&lt;br&gt;<br>
                  &lt;input type="radio" checked name="Kundennummer"<br>
                  value="Nein"&gt;Nein, ich habe keine Kundennummer&lt;/p&gt;<br>
              &lt;/blockquote&gt;<br>
              &lt;p align="center"&gt;&lt;input type="submit" name="back"<br>
              value="&lt;&lt; Zur&uuml;ck"&gt; &lt;input type="submit"<br>
              name="cont" value="Weiter &gt;&gt;"&gt; &lt;input<br>
              type="submit" name="cancel" value="Abbrechen"&gt;[$hidden$]&lt;/p&gt;<br>
          &lt;/form&gt;<br>
          &lt;/td&gt;<br>
      &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  &lt;/center&gt;&lt;/div&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;[$elsif $kn and (($p==1 and $c) or ($p==3 and $b))$] &lt;/p&gt;<br>
  &lt;div align="center"&gt;&lt;center&gt;<br>
  &lt;table border="2" cellpadding="3" cellspacing="6" width="500"&gt;<br>
      &lt;tr&gt;<br>
          &lt;td width="100%"&gt;Geben Sie bitte Ihre Kundennummer ein,<br>
          wenn Sie diese nicht zur Hand haben k&ouml;nnen Sie auch<br>
          nach Ihrere Kundennummer suchen, indem Sie die Felder<br>
          Name und/oder Firma ausf&uuml;llen. <br>
          &lt;form action="neu.htm" method="POST"&gt;<br>
              &lt;input type="hidden" name="page" value="2"&gt;<br>
              &lt;blockquote&gt;<br>
                  &lt;p align="left"&gt;&#160;&lt;/p&gt;<br>
              &lt;/blockquote&gt;<br>
              &lt;table width="100%"&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td width="50%"&gt;<br>
                      &lt;p align="right"&gt;Kundennummer: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="50%"&gt;&lt;input type="text" size="20"<br>
                      maxlength="20" name="kdnr"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td width="50%"&gt;<br>
                      &lt;p align="right"&gt;Name: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="50%"&gt;&lt;input type="text" size="20"<br>
                      maxlength="20" name="Name"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td width="50%"&gt;<br>
                      &lt;p align="right"&gt;Firma: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="50%"&gt;&lt;input type="text" size="20"<br>
                      maxlength="20" name="Firma"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
              &lt;/table&gt;<br>
              &lt;p align="center"&gt;&lt;input type="submit" name="back"<br>
              value="&lt;&lt; Zur&uuml;ck"&gt; &lt;input type="submit"<br>
              name="cont" value="Weiter &gt;&gt;"&gt; &lt;input<br>
              type="submit" name="cancel" value="Abbrechen"&gt;[$hidden$]&lt;/p&gt;<br>
          &lt;/form&gt;<br>
          &lt;/td&gt;<br>
      &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  &lt;/center&gt;&lt;/div&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;[$elsif $kn and (($p==2 and $c) or ($p==5 and $b))$]&lt;/p&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;div align="center"&gt;&lt;center&gt;<br>
  &lt;table border="2" cellpadding="3" cellspacing="6" width="500"&gt;<br>
      &lt;tr&gt;<br>
          &lt;td width="100%"&gt;Es wurden mehere Personen gefunden die<br>
          auf Ihrer Angaben zutreffen. Bitte w&auml;hlen Sie die<br>
          richtige aus. <br>
          &lt;form action="neu.htm" method="POST"&gt;<br>
              &lt;input type="hidden" name="page" value="3"&gt;<br>
              &lt;blockquote&gt;<br>
                  &lt;div align="center"&gt;&lt;center&gt;<br>
                  [- $AdrData[0]{Kdnr} = 123; $AdrData[0]{Name} = 'Mr. X'; $AdrData[0]{Ort} = 'Somewhere'; <br>
                     $AdrData[1]{Kdnr} = 234; $AdrData[1]{Name} = 'Mr. Y'; $AdrData[1]{Ort} = 'Anywhere'; <br>
                     $AdrData[2]{Kdnr} = 345; $AdrData[2]{Name} = 'Note: Database query is missing'; $AdrData[2]{Ort} = ''; <br>
                     $AdrData[3]{Kdnr} = 456; $AdrData[3]{Name} = 'This are only '; $AdrData[3]{Ort} = 'dummys'; -]<br>
  				&lt;table width="90%"&gt;<br>
                      &lt;tr&gt;<br>
                          &lt;td width="100%"&gt;&lt;input type="radio"<br>
                          name="kdnr"<br>
                          value="[+$AdrData[$row]{Kdnr}+]"&gt;<br>
  						[+$AdrData[$row]{Name}+]<br>
                          [+$AdrData[$row]{Ort} +]&lt;/td&gt;<br>
                      &lt;/tr&gt;<br>
                  &lt;/table&gt;<br>
                  &lt;/center&gt;&lt;/div&gt;<br>
              &lt;/blockquote&gt;<br>
              &lt;p align="center"&gt;&lt;input type="submit" name="back"<br>
              value="&lt;&lt; Zur&uuml;ck"&gt; &lt;input type="submit"<br>
              name="cont" value="Weiter &gt;&gt;"&gt; &lt;input<br>
              type="submit" name="cancel" value="Abbrechen"&gt;[$hidden$]&lt;/p&gt;<br>
          &lt;/form&gt;<br>
          &lt;/td&gt;<br>
      &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  &lt;/center&gt;&lt;/div&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;[$elsif !$kn and&lt;br&gt;<br>
  (($p==1 and $c) or&lt;br&gt;<br>
  ($p==5 and $b))$]&lt;/p&gt;<br>
  &lt;div align="center"&gt;&lt;center&gt;<br>
  &lt;table border="2" cellpadding="3" cellspacing="6" width="500"&gt;<br>
      &lt;tr&gt;<br>
          &lt;td width="100%"&gt;Geben Sie bitte hier pers&ouml;nnlichen<br>
          Daten ein. <br>
          &lt;form action="neu.htm" method="POST"&gt;<br>
              &lt;input type="hidden" name="page" value="4"&gt;&lt;div<br>
              align="center"&gt;&lt;center&gt;<br>
              &lt;table width="100%"&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Firma: &lt;/td&gt;<br>
                      &lt;td colspan="3" width="35%"&gt;&lt;input<br>
                      type="text" size="70" maxlength="70"<br>
                      name="Firma"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;&#160;&lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Anrede: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Anrede"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;&#160;&lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Name: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Name"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;Vorname: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Vorname"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Stra&szlig;e: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Strasse"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;Postfach: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Postfach"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Plz: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Plz"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;Ort: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Ort"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;Telefon: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Telefon"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;Telefax: &lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="Telefax"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
                  &lt;tr&gt;<br>
                      &lt;td align="right" width="15%"&gt;E-Mail: &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="EMail"&gt;&lt;/td&gt;<br>
                      &lt;td align="right" width="15%"&gt;<br>
                      &lt;p align="right"&gt;WWW Adresse:&lt;/p&gt;<br>
                      &lt;/td&gt;<br>
                      &lt;td width="35%"&gt;&lt;input type="text" size="30"<br>
                      maxlength="40" name="WWW"&gt;&lt;/td&gt;<br>
                  &lt;/tr&gt;<br>
              &lt;/table&gt;<br>
              &lt;/center&gt;&lt;/div&gt;<br>
              &lt;p align="center"&gt;&lt;input type="submit" name="back"<br>
              value="&lt;&lt; Zur&uuml;ck"&gt; &lt;input type="submit"<br>
              name="cont" value="Weiter &gt;&gt;"&gt; &lt;input<br>
              type="submit" name="cancel" value="Abbrechen"&gt;[$hidden$]&lt;/p&gt;<br>
          &lt;/form&gt;<br>
          &lt;/td&gt;<br>
      &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  &lt;/center&gt;&lt;/div&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;[$elsif ($p==4 &amp;&amp; $c) || ($p==3 &amp;&amp; $c)$]&lt;/p&gt;<br>
  &lt;div align="center"&gt;&lt;center&gt;<br>
  &lt;table border="2" cellpadding="3" cellspacing="6" width="500"&gt;<br>
      &lt;tr&gt;<br>
          &lt;td width="100%"&gt;Wenn Sie jetzt auf &lt;strong&gt;Abspeichern&lt;/strong&gt;<br>
          klicken, werden folgende Daten von Ihnen gespeichert:&lt;br&gt;<br>
          &lt;div align="center"&gt;&lt;center&gt; <br>
          &lt;table width="100%"&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Firma:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td colspan="3" width="35%"&gt;[+$fdat{Firma}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&#160;&lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Anrede:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Anrede}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&#160;&lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Name:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Name}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&lt;strong&gt;Vorname:&lt;/strong&gt; &lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Vorname}+]&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Stra&szlig;e:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Strasse}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&lt;strong&gt;Postfach:&lt;/strong&gt; &lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Postfach}+]&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Plz:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Plz}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&lt;strong&gt;Ort:&lt;/strong&gt; &lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Ort}+]&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;Telefon:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Telefon}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&lt;strong&gt;Telefax:&lt;/strong&gt; &lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{Telefax}+]&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
              &lt;tr&gt;<br>
                  &lt;td align="right" width="15%"&gt;&lt;strong&gt;E-Mail:&lt;/strong&gt; &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{EMail}+]&lt;/td&gt;<br>
                  &lt;td align="right" width="15%"&gt;<br>
                  &lt;p align="right"&gt;&lt;strong&gt;WWW Adresse:&lt;/strong&gt;&lt;/p&gt;<br>
                  &lt;/td&gt;<br>
                  &lt;td width="35%"&gt;[+$fdat{WWW}+]&lt;/td&gt;<br>
              &lt;/tr&gt;<br>
          &lt;/table&gt;<br>
          &lt;/center&gt;&lt;/div&gt; <br>
          &lt;form action="neu.htm" method="POST"&gt;<br>
              &lt;input type="hidden" name="page" value="5"&gt;<br>
              &lt;p align="center"&gt;&lt;input type="submit" name="back"<br>
              value="&lt;&lt; Zur&uuml;ck"&gt; &lt;input type="submit"<br>
              name="cont" value="Abspeichern"&gt; &lt;input type="submit"<br>
              name="cancel" value="Abbrechen"&gt;[$hidden$]&lt;/p&gt;<br>
          &lt;/form&gt;<br>
          &lt;/td&gt;<br>
      &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  &lt;/center&gt;&lt;/div&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;[$endif$]&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;p&gt;&#160;&lt;/p&gt;<br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/recordset.ep.html
  
  Index: recordset.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBIx::Recordset</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBIx::Recordset</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system. 
  Also this example presumes that the table contains the fields <b>id</b> and
  <b>name</b>. If not you have to change the field-names in the table below<br>
  Maybe it's necessary to insert a PerlModule DBIx::Recordset into your srm.conf
  to get this working<br>
  <br>
  You may specify search parameters: For example request this document with<br>
  <b>recordset.htm?id=5</b><br>
  to get all records where the id = 5
  
  <hr>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBIx::Recordset ;<br>
  <br>
  *set = DBIx::Recordset -> Search ({%fdat, <br>
                                     ('!DataSource'   => $DSN,<br>
  									'!Table' => $table,<br>
  									'$max'   => 5,)}) ; -]<br>
  <table border=1>
   <tr><th>ID</th><th>NAME</th></tr>
    <tr>
      <td>[+ $set[$row]{id} +]</td>
      <td>[+ $set[$row]{name} +]</td>
    </tr>
  </table>
  <br>
  [+ $set -> PrevNextForm ('Previous Records', 'Next Records', \%fdat) +]<br>
  <br>
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/recordset.html
  
  Index: recordset.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - DBIx::Recordset</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - DBIx::Recordset</h1>
  <hr><b>NOTE:</b><br>
  You must set the database and table to something which exists on your system. 
  Also this example presumes that the table contains the fields <b>id</b> and
  <b>name</b>. If not you have to change the field-names in the table below<br>
  Maybe it's necessary to insert a PerlModule DBIx::Recordset into your srm.conf
  to get this working<br>
  <br>
  You may specify search parameters: For example request this document with<br>
  <b>recordset.htm?id=5</b><br>
  to get all records where the id = 5
  
  <hr>
  
  
  <table border=1>
   <tr><th>ID</th><th>NAME</th></tr>
    <tr>
      <td>1</td>
      <td>First Name</td>
    </tr>
  
    <tr>
      <td>2</td>
      <td>Second Name</td>
    </tr>
  
    <tr>
      <td>3</td>
      <td>Third Name</td>
    </tr>
  
    <tr>
      <td>4</td>
      <td>New Name on id 4</td>
    </tr>
  
    <tr>
      <td>5</td>
      <td>Fivth Name</td>
    </tr>
  </table>
  <form method="POST"><input type="hidden" name="$start" value="0">
  <input type="hidden" name="$max" value="5">
  <input type="submit" name="$next" value="Next Records"></form>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/recordset.src.html
  
  Index: recordset.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - DBIx::Recordset&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - DBIx::Recordset&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;b&gt;NOTE:&lt;/b&gt;&lt;br&gt;<br>
  You must set the database and table to something which exists on your system. <br>
  Also this example presumes that the table contains the fields &lt;b&gt;id&lt;/b&gt; and<br>
  &lt;b&gt;name&lt;/b&gt;. If not you have to change the field-names in the table below&lt;br&gt;<br>
  Maybe it's necessary to insert a PerlModule DBIx::Recordset into your srm.conf<br>
  to get this working&lt;br&gt;<br>
  &lt;br&gt;<br>
  You may specify search parameters: For example request this document with&lt;br&gt;<br>
  &lt;b&gt;recordset.htm?id=5&lt;/b&gt;&lt;br&gt;<br>
  to get all records where the id = 5<br>
  <br>
  &lt;hr&gt;<br>
  <br>
  [-<br>
  <br>
  $DSN   = 'dbi:mysql:test' ;<br>
  $table = 'dbixrs1' ;<br>
  <br>
  use DBIx::Recordset ;<br>
  <br>
  *set = DBIx::Recordset -&gt; Search ({%fdat, <br>
                                     ('!DataSource'   =&gt; $DSN,<br>
  									'!Table' =&gt; $table,<br>
  									'$max'   =&gt; 5,)}) ; -]<br>
  &lt;table border=1&gt;<br>
   &lt;tr&gt;&lt;th&gt;ID&lt;/th&gt;&lt;th&gt;NAME&lt;/th&gt;&lt;/tr&gt;<br>
    &lt;tr&gt;<br>
      &lt;td&gt;[+ $set[$row]{id} +]&lt;/td&gt;<br>
      &lt;td&gt;[+ $set[$row]{name} +]&lt;/td&gt;<br>
    &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  [+ $set -&gt; PrevNextForm ('Previous Records', 'Next Records', \%fdat) +]<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/table.ep.html
  
  Index: table.ep.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - Dynamic Tables</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Dynamic Tables</h1>
  <hr><h3>This is a example of using the table tag to show the array @arr = ( 'A', 'B', 'C')</h3>
  
  <br>
  [- @arr = ( 'A', 'B', 'C') ; -]<br>
  <table border=1>
     <tr>
  	<td> [+ $arr[$row] +] </td>
     </tr>
  </table>
  
  
  
  <hr><h3>This is a example of using the table tag in embperl to show the environement</h3>
  <br>
  [- @k = keys %ENV -]<br>
  <br>
  <h4>Using $row (one value per row)</h4>
  
  <table>
    <TR>
      <TH>Row</TH>
      <TH>Var</TH>
      <TH>Content</TH>
    </TR>
      <tr>
          <td>[+ $i=$row +] </td>
          <td>[+ $k[$row] +] </td>
          <td>[+ $ENV{$k[$i]} +] </td>
      </tr> 
  </table>
  
  <hr>
  <h4>Using $col (one value per column, only one row)</h4>
  <br>
  [-$maxcol=99-]<br>
  <table>
      <tr>
          <td>[+ $i=$col +] </td>
          <td>[+ $k[$col] +] </td>
          <td>[+ $ENV{$k[$i]} +] </td>
      </tr> 
  </table>
  
  
  <hr><h4>Using $cnt and $maxcol (three values per row)</h4>
  
  <br>
  [-$maxcol=3-]<br>
  <table>
      <tr>
          <td>[+ $i=$cnt +] </td>
          <td>[+ $k[$cnt] +] </td>
          <td>[+ $ENV{$k[$i]} +] </td>
      </tr> 
  </table>
  
  <hr><h3>Display an two dimensional array with one, two and three columns !</h3>
  <h4>Please take a look at the source in your browser to see the difference</h4>
  <br>
  [-<br>
     $a[0][0] = '1/1' ;<br>
     $a[1][0] = '2/1' ;<br>
     $a[1][1] = '2/2' ;<br>
     $a[2][0] = '3/1' ;<br>
     $a[2][1] = '3/2' ;<br>
     $a[2][2] = '3/3' ;<br>
  <br>
     $maxcol=99 ;<br>
  -]<br>
     $a[[0][[0] = '1/1' ;<BR>
     $a[[1][[0] = '2/1' ;<BR>
     $a[[1][[1] = '2/2' ;<BR>
     $a[[2][[0] = '3/1' ;<BR>
     $a[[2][[1] = '3/2' ;<BR>
     $a[[2][[2] = '3/3' ;<BR>
  
  <h4>$tabmode = default </h4>
  
  <table>
      <tr>
          <td>[+ $a[$row][$col] +] </td>
      </tr> 
  </table>
  
  
  <hr><h4>$tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 </h4>
  <br>[- $tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 -]<br>
  
  <table>
      <tr>
          <td>[+ $a[$row][$col] +] </td>
      </tr> 
  </table>
  
  <hr><h4> $tabmode=1 + 32 ; </h4>
  <br>[- $tabmode=1 + 32 ; -]<br>
  
  <table>
      <tr>
          <td>[+ $a[$row][$col] +] </td>
      </tr> 
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  1.1                  modperl-site/embperl/eg/table.html
  
  Index: table.html
  ===================================================================
  
  <html>
  <head>
  <title>Embperl Examples - Dynamic Tables</title>
  </head>
  <body background="../images/jazzbkgd.gif">
  
  <h1>Embperl Examples - Dynamic Tables</h1>
  <hr><h3>This is a example of using the table tag to show the array @arr = ( 'A', 'B', 'C')</h3>
  
  
  <table border=1>
     <tr>
  	<td> A </td>
     </tr>
  
     <tr>
  	<td> B </td>
     </tr>
  
     <tr>
  	<td> C </td>
     </tr>
  </table>
  
  
  
  <hr><h3>This is a example of using the table tag in embperl to show the environement</h3>
  
  
  
  <h4>Using $row (one value per row)</h4>
  
  <table>
    <TR>
      <TH>Row</TH>
      <TH>Var</TH>
      <TH>Content</TH>
    </TR>
      <tr>
          <td>0 </td>
          <td>SERVER_SOFTWARE </td>
          <td>Apache/1.3.0 (Unix) </td>
      </tr> 
  
      <tr>
          <td>1 </td>
          <td>DOCUMENT_ROOT </td>
          <td>/local/www/data </td>
      </tr> 
  
      <tr>
          <td>2 </td>
          <td>GATEWAY_INTERFACE </td>
          <td>CGI-Perl/1.1 </td>
      </tr> 
  
      <tr>
          <td>3 </td>
          <td>REMOTE_ADDR </td>
          <td>195.52.12.194 </td>
      </tr> 
  
      <tr>
          <td>4 </td>
          <td>SERVER_PROTOCOL </td>
          <td>HTTP/1.1 </td>
      </tr> 
  
      <tr>
          <td>5 </td>
          <td>REQUEST_METHOD </td>
          <td>GET </td>
      </tr> 
  
      <tr>
          <td>6 </td>
          <td>TestEnv </td>
          <td>1234 </td>
      </tr> 
  
      <tr>
          <td>7 </td>
          <td>HTTP_USER_AGENT </td>
          <td>Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) </td>
      </tr> 
  
      <tr>
          <td>8 </td>
          <td>QUERY_STRING </td>
          <td> </td>
      </tr> 
  
      <tr>
          <td>9 </td>
          <td>PATH </td>
          <td>/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin </td>
      </tr> 
  
      <tr>
          <td>10 </td>
          <td>EMBPERL_VIRTLOG </td>
          <td>/embperl-log </td>
      </tr> 
  
      <tr>
          <td>11 </td>
          <td>HTTP_CONNECTION </td>
          <td>Keep-Alive </td>
      </tr> 
  
      <tr>
          <td>12 </td>
          <td>HTTP_ACCEPT </td>
          <td>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */* </td>
      </tr> 
  
      <tr>
          <td>13 </td>
          <td>REMOTE_PORT </td>
          <td>1068 </td>
      </tr> 
  
      <tr>
          <td>14 </td>
          <td>HTTP_ACCEPT_LANGUAGE </td>
          <td>de </td>
      </tr> 
  
      <tr>
          <td>15 </td>
          <td>MOD_PERL </td>
          <td>1.11 </td>
      </tr> 
  
      <tr>
          <td>16 </td>
          <td>EMBPERL_OPTIONS </td>
          <td>0 </td>
      </tr> 
  
      <tr>
          <td>17 </td>
          <td>SCRIPT_FILENAME </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      </tr> 
  
      <tr>
          <td>18 </td>
          <td>HTTP_ACCEPT_ENCODING </td>
          <td>gzip, deflate </td>
      </tr> 
  
      <tr>
          <td>19 </td>
          <td>SCRIPT_NAME </td>
          <td>/embperl/x/table.htm </td>
      </tr> 
  
      <tr>
          <td>20 </td>
          <td>SERVER_NAME </td>
          <td>venus.gr.ecos.de </td>
      </tr> 
  
      <tr>
          <td>21 </td>
          <td>REQUEST_URI </td>
          <td>/embperl/x/table.htm </td>
      </tr> 
  
      <tr>
          <td>22 </td>
          <td>SERVER_PORT </td>
          <td>8765 </td>
      </tr> 
  
      <tr>
          <td>23 </td>
          <td>HTTP_HOST </td>
          <td>www.gr.ecos.de:8765 </td>
      </tr> 
  
      <tr>
          <td>24 </td>
          <td>PATH_TRANSLATED </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      </tr> 
  
      <tr>
          <td>25 </td>
          <td>SERVER_ADMIN </td>
          <td>root@venus.gr.ecos.de </td>
      </tr> 
  </table>
  
  <hr>
  <h4>Using $col (one value per column, only one row)</h4>
  
  
  <table>
      <tr>
          <td>0 </td>
          <td>SERVER_SOFTWARE </td>
          <td>Apache/1.3.0 (Unix) </td>
      
          <td>1 </td>
          <td>DOCUMENT_ROOT </td>
          <td>/local/www/data </td>
      
          <td>2 </td>
          <td>GATEWAY_INTERFACE </td>
          <td>CGI-Perl/1.1 </td>
      
          <td>3 </td>
          <td>REMOTE_ADDR </td>
          <td>195.52.12.194 </td>
      
          <td>4 </td>
          <td>SERVER_PROTOCOL </td>
          <td>HTTP/1.1 </td>
      
          <td>5 </td>
          <td>REQUEST_METHOD </td>
          <td>GET </td>
      
          <td>6 </td>
          <td>TestEnv </td>
          <td>1234 </td>
      
          <td>7 </td>
          <td>HTTP_USER_AGENT </td>
          <td>Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) </td>
      
          <td>8 </td>
          <td>QUERY_STRING </td>
          <td> </td>
      
          <td>9 </td>
          <td>PATH </td>
          <td>/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin </td>
      
          <td>10 </td>
          <td>EMBPERL_VIRTLOG </td>
          <td>/embperl-log </td>
      
          <td>11 </td>
          <td>HTTP_CONNECTION </td>
          <td>Keep-Alive </td>
      
          <td>12 </td>
          <td>HTTP_ACCEPT </td>
          <td>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */* </td>
      
          <td>13 </td>
          <td>REMOTE_PORT </td>
          <td>1068 </td>
      
          <td>14 </td>
          <td>HTTP_ACCEPT_LANGUAGE </td>
          <td>de </td>
      
          <td>15 </td>
          <td>MOD_PERL </td>
          <td>1.11 </td>
      
          <td>16 </td>
          <td>EMBPERL_OPTIONS </td>
          <td>0 </td>
      
          <td>17 </td>
          <td>SCRIPT_FILENAME </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      
          <td>18 </td>
          <td>HTTP_ACCEPT_ENCODING </td>
          <td>gzip, deflate </td>
      
          <td>19 </td>
          <td>SCRIPT_NAME </td>
          <td>/embperl/x/table.htm </td>
      
          <td>20 </td>
          <td>SERVER_NAME </td>
          <td>venus.gr.ecos.de </td>
      
          <td>21 </td>
          <td>REQUEST_URI </td>
          <td>/embperl/x/table.htm </td>
      
          <td>22 </td>
          <td>SERVER_PORT </td>
          <td>8765 </td>
      
          <td>23 </td>
          <td>HTTP_HOST </td>
          <td>www.gr.ecos.de:8765 </td>
      
          <td>24 </td>
          <td>PATH_TRANSLATED </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      
          <td>25 </td>
          <td>SERVER_ADMIN </td>
          <td>root@venus.gr.ecos.de </td>
      </tr> 
  </table>
  
  
  <hr><h4>Using $cnt and $maxcol (three values per row)</h4>
  
  
  <table>
      <tr>
          <td>0 </td>
          <td>SERVER_SOFTWARE </td>
          <td>Apache/1.3.0 (Unix) </td>
      
          <td>1 </td>
          <td>DOCUMENT_ROOT </td>
          <td>/local/www/data </td>
      
          <td>2 </td>
          <td>GATEWAY_INTERFACE </td>
          <td>CGI-Perl/1.1 </td>
      </tr> 
  
      <tr>
          <td>3 </td>
          <td>REMOTE_ADDR </td>
          <td>195.52.12.194 </td>
      
          <td>4 </td>
          <td>SERVER_PROTOCOL </td>
          <td>HTTP/1.1 </td>
      
          <td>5 </td>
          <td>REQUEST_METHOD </td>
          <td>GET </td>
      </tr> 
  
      <tr>
          <td>6 </td>
          <td>TestEnv </td>
          <td>1234 </td>
      
          <td>7 </td>
          <td>HTTP_USER_AGENT </td>
          <td>Mozilla/4.0 (compatible; MSIE 4.01; Windows 95) </td>
      
          <td>8 </td>
          <td>QUERY_STRING </td>
          <td> </td>
      </tr> 
  
      <tr>
          <td>9 </td>
          <td>PATH </td>
          <td>/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin </td>
      
          <td>10 </td>
          <td>EMBPERL_VIRTLOG </td>
          <td>/embperl-log </td>
      
          <td>11 </td>
          <td>HTTP_CONNECTION </td>
          <td>Keep-Alive </td>
      </tr> 
  
      <tr>
          <td>12 </td>
          <td>HTTP_ACCEPT </td>
          <td>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */* </td>
      
          <td>13 </td>
          <td>REMOTE_PORT </td>
          <td>1068 </td>
      
          <td>14 </td>
          <td>HTTP_ACCEPT_LANGUAGE </td>
          <td>de </td>
      </tr> 
  
      <tr>
          <td>15 </td>
          <td>MOD_PERL </td>
          <td>1.11 </td>
      
          <td>16 </td>
          <td>EMBPERL_OPTIONS </td>
          <td>0 </td>
      
          <td>17 </td>
          <td>SCRIPT_FILENAME </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      </tr> 
  
      <tr>
          <td>18 </td>
          <td>HTTP_ACCEPT_ENCODING </td>
          <td>gzip, deflate </td>
      
          <td>19 </td>
          <td>SCRIPT_NAME </td>
          <td>/embperl/x/table.htm </td>
      
          <td>20 </td>
          <td>SERVER_NAME </td>
          <td>venus.gr.ecos.de </td>
      </tr> 
  
      <tr>
          <td>21 </td>
          <td>REQUEST_URI </td>
          <td>/embperl/x/table.htm </td>
      
          <td>22 </td>
          <td>SERVER_PORT </td>
          <td>8765 </td>
      
          <td>23 </td>
          <td>HTTP_HOST </td>
          <td>www.gr.ecos.de:8765 </td>
      </tr> 
  
      <tr>
          <td>24 </td>
          <td>PATH_TRANSLATED </td>
          <td>/usr/msrc/embperl/eg/x/table.htm </td>
      
          <td>25 </td>
          <td>SERVER_ADMIN </td>
          <td>root@venus.gr.ecos.de </td>
      </tr> 
  </table>
  
  <hr><h3>Display an two dimensional array with one, two and three columns !</h3>
  <h4>Please take a look at the source in your browser to see the difference</h4>
  
  
     $a[0][0] = '1/1' ;<BR>
     $a[1][0] = '2/1' ;<BR>
     $a[1][1] = '2/2' ;<BR>
     $a[2][0] = '3/1' ;<BR>
     $a[2][1] = '3/2' ;<BR>
     $a[2][2] = '3/3' ;<BR>
  
  <h4>$tabmode = default </h4>
  
  <table>
      <tr>
          <td>1/1 </td>
      </tr> 
  
      <tr>
          <td>2/1 </td>
      
          <td>2/2 </td>
      </tr> 
  
      <tr>
          <td>3/1 </td>
      
          <td>3/2 </td>
      
          <td>3/3 </td>
      </tr> 
  </table>
  
  
  <hr><h4>$tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 </h4>
  
  
  <table>
      <tr>
          <td>1/1 </td>
      
          <td> </td>
      
          <td> </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td>2/1 </td>
      
          <td>2/2 </td>
      
          <td> </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td>3/1 </td>
      
          <td>3/2 </td>
      
          <td>3/3 </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td> </td>
      
          <td> </td>
      
          <td> </td>
      
          <td> </td>
      </tr> 
  </table>
  
  <hr><h4> $tabmode=1 + 32 ; </h4>
  
  
  <table>
      <tr>
          <td>1/1 </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td>2/1 </td>
      
          <td>2/2 </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td>3/1 </td>
      
          <td>3/2 </td>
      
          <td>3/3 </td>
      
          <td> </td>
      </tr> 
  
      <tr>
          <td> </td>
      </tr> 
  </table>
  
  <p><hr>
  
  <small>HTML::Embperl (c) 1997-1998 G.Richter</small>
  
  
  </body>
  </html>
  
  
  
  
  1.1                  modperl-site/embperl/eg/table.src.html
  
  Index: table.src.html
  ===================================================================
  <HTML><HEAD><TITLE>Source of Example for Embperl</TITLE></HEAD><BODY>
  <br>
  &lt;html&gt;<br>
  &lt;head&gt;<br>
  &lt;title&gt;Embperl Examples - Dynamic Tables&lt;/title&gt;<br>
  &lt;/head&gt;<br>
  &lt;body background="../images/jazzbkgd.gif"&gt;<br>
  <br>
  &lt;h1&gt;Embperl Examples - Dynamic Tables&lt;/h1&gt;<br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the table tag to show the array @arr = ( 'A', 'B', 'C')&lt;/h3&gt;<br>
  <br>
  [- @arr = ( 'A', 'B', 'C') ; -]<br>
  &lt;table border=1&gt;<br>
     &lt;tr&gt;<br>
  	&lt;td&gt; [+ $arr[$row] +] &lt;/td&gt;<br>
     &lt;/tr&gt;<br>
  &lt;/table&gt;<br>
  <br>
  <br>
  <br>
  &lt;hr&gt;&lt;h3&gt;This is a example of using the table tag in embperl to show the environement&lt;/h3&gt;<br>
  <br>
  [- @k = keys %ENV -]<br>
  <br>
  &lt;h4&gt;Using $row (one value per row)&lt;/h4&gt;<br>
  <br>
  &lt;table&gt;<br>
    &lt;TR&gt;<br>
      &lt;TH&gt;Row&lt;/TH&gt;<br>
      &lt;TH&gt;Var&lt;/TH&gt;<br>
      &lt;TH&gt;Content&lt;/TH&gt;<br>
    &lt;/TR&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $i=$row +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $k[$row] +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $ENV{$k[$i]} +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  &lt;hr&gt;<br>
  &lt;h4&gt;Using $col (one value per column, only one row)&lt;/h4&gt;<br>
  <br>
  [-$maxcol=99-]<br>
  &lt;table&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $i=$col +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $k[$col] +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $ENV{$k[$i]} +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  <br>
  &lt;hr&gt;&lt;h4&gt;Using $cnt and $maxcol (three values per row)&lt;/h4&gt;<br>
  <br>
  [-$maxcol=3-]<br>
  &lt;table&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $i=$cnt +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $k[$cnt] +] &lt;/td&gt;<br>
          &lt;td&gt;[+ $ENV{$k[$i]} +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  &lt;hr&gt;&lt;h3&gt;Display an two dimensional array with one, two and three columns !&lt;/h3&gt;<br>
  &lt;h4&gt;Please take a look at the source in your browser to see the difference&lt;/h4&gt;<br>
  <br>
  [-<br>
     $a[0][0] = '1/1' ;<br>
     $a[1][0] = '2/1' ;<br>
     $a[1][1] = '2/2' ;<br>
     $a[2][0] = '3/1' ;<br>
     $a[2][1] = '3/2' ;<br>
     $a[2][2] = '3/3' ;<br>
  <br>
     $maxcol=99 ;<br>
  -]<br>
     $a[[0][[0] = '1/1' ;&lt;BR&gt;<br>
     $a[[1][[0] = '2/1' ;&lt;BR&gt;<br>
     $a[[1][[1] = '2/2' ;&lt;BR&gt;<br>
     $a[[2][[0] = '3/1' ;&lt;BR&gt;<br>
     $a[[2][[1] = '3/2' ;&lt;BR&gt;<br>
     $a[[2][[2] = '3/3' ;&lt;BR&gt;<br>
  <br>
  &lt;h4&gt;$tabmode = default &lt;/h4&gt;<br>
  <br>
  &lt;table&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $a[$row][$col] +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  <br>
  &lt;hr&gt;&lt;h4&gt;$tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 &lt;/h4&gt;<br>
  [- $tabmode=3 + 48 ; $maxcol = 4; $maxrow = 4 -]<br>
  <br>
  &lt;table&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $a[$row][$col] +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  &lt;hr&gt;&lt;h4&gt; $tabmode=1 + 32 ; &lt;/h4&gt;<br>
  [- $tabmode=1 + 32 ; -]<br>
  <br>
  &lt;table&gt;<br>
      &lt;tr&gt;<br>
          &lt;td&gt;[+ $a[$row][$col] +] &lt;/td&gt;<br>
      &lt;/tr&gt; <br>
  &lt;/table&gt;<br>
  <br>
  &lt;p&gt;&lt;hr&gt;<br>
  <br>
  &lt;small&gt;HTML::Embperl (c) 1997-1998 G.Richter&lt;/small&gt;<br>
  <br>
  <br>
  &lt;/body&gt;<br>
  &lt;/html&gt;<br>
  </BODY></HTML>
  
  
  1.1                  modperl-site/embperl/eg/images/jazzbkgd.gif
  
  Index: jazzbkgd.gif
  ===================================================================
  GIF87ay
  
  ܂	�
  
  D,x�Ë'V���cÒ>�(��Ƅ/_��y����
  �
  �<R�k��R���"Eؤ;���mv�׃��9�0O��YJ/�H�x�{�h}m��dWp@�eg�e��Jp9��z��5�ru��i���Xi�QFaD%Q��R�!��j5w���d�R vW{���k�ɇ�|Í��X����n�y�!�w�UI��O�9��fA�m�^�]�����Z�=�)^y=nw�m	�zX��׋�]4��wW�A����U��OF%�b���ib�T}B7n����I�ZC}	Xw��E�]H!��TsM�"�jv�瑛��Ԏ�z�&Z~՘]�>�cD��J�ie��r&V��9��~vI[�n�I	�;i��WJUimb�+���O�����a�]�hf%Mqu�b�obX��_>�o�Y��:
  ʛ`�y�EO��췇jb���:\��Rj���a��dad��9؇�Ɉ�l����%�Z���.70]芥nGQ�qc��sW�"���!�X
  OW�=\]]
   ��n-9��9��Y���.sx��ֶ*\O/�tQ=�
୧�q��}YӖt1�}ϙ��m�n�Y����4�R���3�t�e�HR����,e��M�>��r"c��t$�G��"���A9H�[�٘'���0r8� �p��X�,x?aZ��ԫQp|�j�E�4R��Y�:���RR/��i�7���6���K2�*��"D�b-Oj͋�T'<HI.^8�����Nn|
  ��`ع�)D�#�Z0��u�+[�+X��Ceh�^|��7�I�)4,T�N3.I}�C�1��
  i���kT<��f�(�d�'~�j��&�1��p?�Q��g/���_�z#g�/LIL\����8�F��^D�E���	:"IP���I�P2TΠJ�cQ2>�^���"7bˀC�^�b���.��%!-�9$t٤l��::EP�E�m�c>��1z��^}<��K;K,-�8/���J�
  TJ�G8�r-�(E/Z2�!��؉)c��\�:����%��#A���MT��T/C�8����5�Μ�|�!Jk(&!#5%1]�(O⨪���T��ì��i-�,&
�)ϣ��I��M�����:��f��i�:)�,
  %m�7�l���׫(�:Αa�{������De��	H���P/��|n$Op��T��U�r"�ΕE@ji��c���Ml`��(����)�|Oa:��Fg�t���x�	�V�
(k
�ڷ�ΓI	-b��?�u/��i�\�N6k�l'
e�?�ԝ��`S�E��晓�h��I6�TD֤��T��6dI�΍b���b�̪�R�)�����E��t��ˇ��cN};����Dy���*�k=0�-ffO+�2����}��fU���l�d�A?ś���w�sNЖ"C���f�����x[Q�����W�[&L��y�HG�!MIX^����S3g��`�2��)�h#N��t��R�����1Gk[�A��;�VoF>�������d��9$�Ԑ4]���ֻ}NF\��%b�uc&�W�Ff�l�8'B��Tl}5��8׏tw4ɪ�u�����@HRI��o�؛�W�h�3JOB�pcT�TZ���հ�8�_5֏d\5����gGZAV�ܴ�[�?ǘ�MT�QWY�N��Jc��y�(OLl�>j��j�Lt�8vd-}|�tj����W�(��9�c3&�o�]~s5��M�`��T�U�F��xUh�
  X�ē��9�վfP̫x'���h����c�j
  ��֯^���h
�~j\�>���hz��`�+���;GϰQ7*v,�2�q�􅎱��=�ɛ"fF!O�_l�T"��e3�޳o�]��y�ȗBE#�F�s�G"BuUv%r�pPki'sN7m!�}��`��m�0vX��e�g�W�ʂ*C"#��]�Vv3�v��s�g@.B{ե_h�8m�X��W��H6F0��_NE��.5�TlWo��i8�J��.*�OW�'i/Jh:]�VL�|�� zJG(P#�!pQ8#B�rr�P(6f-�5upJ�z�y	6-,�v��|`"�2��E�u�t�]�0��6�)8e�<7Uu��742��T[G`d�(]J��\C�k�baXi���$��a�"B��rd�`�Tz��3A�|����t_rS}�_3���c}E?��hxU8e�v#{�_9]���D��g�֊�a�TrI���U�s�*`�E&dJF�zTv|���B{�DŽ��cw�gB�f>k �hk�'�lU|�c4%_�Fo��Pu��6<�� �x�-�rLtv��n��~�%U�V�wP}�"/�C%��<h���}�>���f<�hk^�~J�J�j��_	x���?yW�X)VHy�s(Vl !M�|��C-���w��iV�K՗ ��nxP�C=�7+YO�XE��$�x\b��1kSW�?���ō_R��f%y�1��H�lRtN�� p�8�EZ8�q��
�42�1R9�X��׃8q�uumĆ�'+Y�m4�̶���DӐ��b�RՃ����4r��56�A2W`4G�P�t��y��5�MK��1��6�dLbw��ƌj�b�E�l9'.c|Iya�(wҁ��u������W�Vj%���gl��=?3�dƕ��wVI~��e�"��xQe������A2BfG:�2ʼne<�}t�lu���4E�yL��~�&$�p@�Z��z��yu��}��D��T؆�iv�Ye�	��{�u&��	\=1
@����-FM2�+zCk�/���� 4��Fs����R���c