.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Features 3pm" .TH Features 3pm "2023-01-22" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Embperl::Features \- Main features of Embperl 2.0 .SH "Main features of Embperl 2.0" .IX Header "Main features of Embperl 2.0" .IP "\(bu" 4 Embperl facilitates embedding Perl code into \s-1HTML/XML\s0 or other text documents. Perl code is evaluated at the server side and the result is sent to the browser. All available Perl modules can be used without any restriction. .IP "\(bu" 4 Allows one to build Web sites out of small reusable components in an object-oriented way. Components can call and/or embed each other and inherit from other objects. .IP "\(bu" 4 Standard layout of a web-site site can be defined once and the content can be dynamically generated by these components based on the uri. The documents need only contain the variable portions but not the common items which define the layout like headers/footers or navigation bars which normally form the template. Also these common elements can be overwritten in each sub-directory. .IP "\(bu" 4 Embperl 2.0 thus facilitates separating code, layout and creating \s-1MVC\s0 (Model-View-Controller) applications. Control logic can be moved into an application object, which controls further execution of the request, while the actual pages are containing the display code. Simple applications can still embed all the code in the pages. .IP "\(bu" 4 Source-code for each component can come from a different source, e.g. from file, memory or sub-request which allows one to act on the output from another Apache application like \s-1PHP, JSP, CGI\s0 Script etc. .IP "\(bu" 4 Each component can be in a different source format (e.g. \s-1HTML, WML, XML, POD, ...\s0) and can be transformed to other output formats, say by using via \s-1XSLT.\s0 .IP "\(bu" 4 Supports one or more scripting syntax using Embperl, \s-1ASP,\s0 Text, Perl and others. .IP "\(bu" 4 Output generation is divided into small steps where each is processed by a plugable provider. The interaction of the providers can be individually configured for each component via recipes. .IP "\(bu" 4 Supports caching of intermediate results and output. .IP "\(bu" 4 Embperl encompasses several features that ease the task of dynamic web-site content generation, including dynamic-tables, form-field-processing, escaping/unescaping, etc. .IP "\(bu" 4 Contains a module for easy form input validation, which is able to validate user input at the server side and on the client side by one definition of rules. .IP "\(bu" 4 Handles per-user and per-module persistent session requiring only storage and retrieval of the session data from a special hash. .IP "\(bu" 4 \&\s-1UTF\-8\s0 Support (honours Perl's internal \s-1UTF\-8\s0 flag during in\- and output) .IP "\(bu" 4 Offers flexible configuration options to suite individual tastes and needs. .IP "\(bu" 4 Fully integrated into Apache and mod_perl to achieve the best performance. Can also run as a free standing CGI-script, off-line or can be called from another Perl program. .IP "\(bu" 4 The Perl module DBIx::Recordset offers high level, easy to use database access for Embperl. .IP "\(bu" 4 \&\fIEmbperl::Mail\fR enables redirecting the result output to a mail-recipient. .IP "\(bu" 4 \&\fIEmbperl::Inline\fR allows one to embedd Embperl code in normal Perl code