Hints for using Embperl 2.x --------------------------- Embperl 2 contains nearly 7000 lines new (mostly C-) code. Also I have done a lot of testing, don't expect it to work without errors! Please report any weired behaviour to the embperl mailing list, but be sure to read this whole README to understand what can't work so far. The Embperl core now works in a totaly different way. It is devided into smaller steps: 1 reading the source 2 parseing 3 compiling 4 executing 5 outputing Further version will allow to replace every single step of this pipeline with custom modules. Also it will be possible to cascade multiple processors. This allows for example to have Embperl and SSI in one file and to parse the file only once, feeding it first to the SSI processor and afterwards to the Embperl processor. Also the parser will be exchangeable in future version to allow for example to use an XML parser and an XSLT stylesheet processor. These new execution scheme is also faster, because html tags and metacommands are parsed only once (Perl code was also (and is still) cached in 1.x) My first benchmarks show 25%-50% faster execution under mod_perl for pages longer then 20K (For short pages ( < 5K ouput) you won't see a great difference) Another new feature is that the syntax of the Embperl parser is defined with in the module HTML::Embperl::Syntax and can be modified as nessecary. See the file Embperl/Syntax.pm how it looks like and perldoc HTML::Embperl::Syntax for a short description. A further verion will add an API to this syntax module, so custom syntaxes can be easily added, without modifiy Syntax.pm itself. Also left for one of the next release is the caching of (parts of) the output. The following difference to Embperl 1.x apply: ------------------------------------------------------ - The following options can currently only set from the httpd.conf: optRawInput, optKeepSpaces - The following options are currently not supported: optDisableHtmlScan, optDisableTableScan, optDisableInputScan, optDisableMetaScan - Nesting must be properly. I.e. you cannot put a