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%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Paul Buetow 6b7156cf18 docs: add deprecation notice
Amp-Thread-ID: https://ampcode.com/threads/T-019cc858-2bdd-716d-8668-e1fb47137cf3
Co-authored-by: Amp <amp@ampcode.com>
2026-03-07 14:51:47 +02:00
Xerl /usr/bin/fortune 2018-12-22 13:52:33 +01:00
COPYING no https 2017-07-29 17:33:12 +01:00
index.cgi default config is xerl.con 2018-12-14 17:09:56 +02:00
index.fcgi default config is xerl.con 2018-12-14 17:09:56 +02:00
Makefile update all target 2013-10-03 13:10:12 +02:00
README docs: add deprecation notice 2026-03-07 14:51:47 +02:00
TODO dont plan to migrate to Perl 6 yet 2017-01-01 17:32:02 +00:00
xerl.conf use different style when connected via ipv6 2018-12-22 13:45:48 +01:00
Xerl.pm no https 2017-07-29 17:33:12 +01:00

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').