Embperl has started as a Perl module for simply embedding Perl
into HTML and has grown to
a full featured system to build dynamic content (not only) under
mod_perl. The version 1.x focuses on HTML documents, also it could be
used for any sort of ascii files, and brings a lot of features
especially useful in a web-environment. These features include
handling of form data and dynamic HTML tables/lists, session management
and context sensitive escaping and unescaping. Moreover you can
break up your documents in small reusable components/objects and build
an object-oriented website out of such objects, by using inheritance and
specifically overriding parts of the page. Also Embperl can cope with pages
that are screwed up by high-level HTML editors, so your designer can still
use their favorite tool. Embperl 2.0, which is a complete rewrite of the Embperl core, is not
only much faster then 1.x, but adds new possibilities. You can extend
or define your own syntax, thus giving the chance to trigger actions
on certain tags or inventing your own tags (creating a taglib).
It is much more modularized, so specific steps could be replaced by
a custom processor and more than one processor can act on a document
before it goes to the browser (just like a Unix pipe). To enhance
performance 2.0 introduces caching of the output or intermediate steps. Due to this modularization, it is now possible to replace the Embperl parser
by an XML parser and to do XML processing, for example by plugging in
an XSLT processer in the processing pipeline.
Embperl 2.0 can utilize libxml2 and libxslt for XML and XSLT processing. All versions of 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.
How does it compare to other templating solutions ? | top |
Embperl is not the only processor for embedded Perl code.
I guess every second webprogrammer builds his own templating
engine. Most of them are very similar and easy, but do a
good job in a certain environment. Often after a while these
programmer discover, they need more features and that other people
in the same situation has already build a soltuion for their problems.
At the moment there are five widely used Perl modules for generating
dynamic web content (Embperl, Apache::ASP, HTML::Mason,
Template::Toolkit and AxKit). All of these have their special strength.
So why to use Embperl? We believe that Embperl, especialy the
version 2.0, covers all of the aspects of these modules and integrates them
in one module with addtionaly benefits that are unique to Embperl.
Additionally Embperl is the fastest of these solutions, because it's engine
is totaly written in C and is optimized for delivering dynamic content
online. Another competitor for Embperl is PHP.
PHP is developing a strong user base, because it is rumored to be easy
to learn, and was designed specifically for HTML. Also PHP is probably one
of the strongest open source alternatives to using Perl in your
HTML, it's target is very webcentric and you may discover at a certain
point that is has its limitations when you try to realize great projects.
Also it's not true, like some anecdotal stories on the Web might want to make
you believe, that PHP is faster than Perl. Perl,
and therefore Embperl also, scales and performs very well for high end solution.
Focus of this document | top |
This tries to be an introduction to the basics of Embperl.
perldoc IntroEmbperlObject gives you an
tutorial about how to build an object-oriented website.
|