Perl excels at munging textual data. It was specifically designed to simplify the task of extracting and reporting data from text-based formats. As a result, it offers many built-in high-level text-processing facilities. Perl's nature is quite liberal . It presumes (rightly, I believe) that most people who write programs on a daily basis are not classically trained computer scientists. Therefore, it strives to be useful at every level of expertise. Given these features and the reality that the vast majority of web-programming tasks involve extracting data and presenting it in a textual format (often HTML markup) under tight deadlines, it's no wonder that Perl enjoys wide success as a web-development technology. And, by extension, you should not be surprised to find CPAN (the Perl community's extension repository) bursting with modules and packages that attempt to streamline the mundane details of web publishing.
Among the most popular types of Perl web modules are templating systems and web-application frameworks. Though the two often overlap in practice, you can distinguish between them. Templating systems are concerned solely with generating consistent document content. Web-application frameworks typically do the same but also provide a development environment that simplifies common back-end programming tasks (database access, etc.), reduces redundancy, and fosters good coding practices. From this perspective, AxKit itself is perhaps best seen as an application framework with built-in support for a variety of XML-centric templating systems.
Choosing the right system is not trivial. At the very least, it takes time to learn a given tool's syntax and common patterns well enough to decide whether they suit your needs and style. If you are like most coders, once you find a tool that flies, you tend to stay with it. If, for example, you learn the ins and outs of a tool such as Mason, and it works well for the project at hand, then you are more likely to use it for your next project and less likely to examine other solutions. On the positive side, this loyalty is the very foundation of healthy and active open source project; like-minded developers congregate around a given system, and their accumulated knowledge, code contributions, and advocacy benefit the larger user community and help bring new developers on board. On the negative side, blinkered devotion to one toolset often means that other, perhaps more suitable, tools and techniques are dismissed in favor of what is familiar.
Fortunately, AxKit does not make you choose. This chapter examines its modular, pluggable design means that many popular frameworks and templating systems can easily be integrated to provide content for, or transform content within, AxKit.