Xerl is an open source website template engine (TE) with some features of a Content Management System (CMS) programmed in object oriented Perl (boosted by FastCGI) and using XML.
- Perl 99.3%
- Makefile 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Amp-Thread-ID: https://ampcode.com/threads/T-019cc858-2bdd-716d-8668-e1fb47137cf3 Co-authored-by: Amp <amp@ampcode.com> |
||
| Xerl | ||
| COPYING | ||
| index.cgi | ||
| index.fcgi | ||
| Makefile | ||
| README | ||
| TODO | ||
| xerl.conf | ||
| Xerl.pm | ||
DEPRECATED:
This project is no longer maintained. No further updates, bug fixes, or
feature additions will be made. Use at your own risk.
STYLEGUIDE:
Always do:
Pragmatic modules ALWAYS to use in ALL packages:
use strict;
use warnings;
use v5.14;
Only for packages for including package UNIVERSAL definitions
use Xerl::Page::Base;
Object oriented coding style
Always use method prototypes if possible
sub foo($;$) { .... }
Explicit object typing if possible
my Class::Name::Here $foo = Class::Name::Here->new();
If no real ret val, set undef; explicitly
sub foo() {
# Do some stuff
...
# Set explicit undef ret value
return undef;
}
Private subs use _ as its prefix and are called only from the current package.
package Xerl::Foo::Bla;
.
.
sub _iamprivate($) {
my Xerl::Foo:Bla $self = $_[0];
.
.
}
sub iampublic($) {
my Xerl::Foo:Bla $self = $_[0];
$self->_iamprivate();
return undef;
}
Static subs (not OOP) are in CAPITAL letters.
sub IAMSTATIC($) {
print shift;
return 'Hello World';
}
sub iamdynamic($) {
my Xerl::Foo:Bla $self = $_[0];
return Xerl::Foo::Bla::IAMSTATIC( $self->get_somevalue() );
}
Static private subs start with _ and are written in CAPITAL letters
sub _IAMSTATICPRIVATE() {
.
.
}
Use Pidy to automaically restyle the code! (make perltidy)
Mark things which are still to do with TODO: at any place in the source
tree. (Can be searched for using 'make todo').