2.0b1 (BETA) 22. Dec 2000 |
- Syntax of Embperl is now defined in module HTML::Embperl::Syntax
- Processing of Embperl is now divided in smaller steps:
1 reading the source
2 parseing
3 compiling
4 executing
5 outputing
Since steps 1-3 has only to take place for the first time a file
is processed, Embperl is about 50-100% faster the Embperl 1.x.
(Embperl 1.x has also precompiled the Perl code, but Embperl
goes much further and stores also a precompiled structure of
the document)
This modularisation will also allow to replace single steps
with other modules and to cascade multiple processors, that
work on one document.
- 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 <table> tag (for an
dynamic table) inside an if and the </table> inside another if.
(That still works for static tables)
- optUndefToEmptyValue is always set and cannot be disabled.
- [$ foreach $x (@x) $] requires now the bracket around the
array (like Perl)
- [* *] blocks works now as expected.
- option tag can take value optional from html text, so
<option value="foo"> and <option>foo</option> are the same
- Execute ('file.htm#subname') works now without a previous
import
- Added cacheing of output. There are serveral parameters that
controls the caching. They can be either given as configuration
directives in httpd.conf, as parameters to Execute or as
Perl vars/subs inside a [! !] of the page itself.
- [+ +] blocks must now contain a valid Perl expression. Embperl 1.x
allows you to put multiple statements into such a block. For performance
reasons this is not possible anymore. Also the expression must _not_
terminated with a semikolon. To let old code work, just wrap it into a do
e.g. [+ do { my $a = $b + 5 ; $a } +]
|