Kush's Blog

Kush's Blog

Top Perl Frameworks

Top Perl Frameworks

Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.

The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal).

Its major features are that it's easy to use, supports both procedural and object-oriented (OO) programming, has powerful built-in support for text processing, and has one of the world's most impressive collections of third-party modules.

Perl Frameworks

Catalyst

Catalyst is the most popular Perl MVC framework that makes developing web applications fun, rewarding, and quick. The apps built on Catalyst are robust and scalable with no complicated object hierarchies.

Perlcatalyst.JPG

Features

Catalyst comes with its own lightweight test server for development. It automatically restarts when your sources have changed, so you get instant results.

Catalyst supports a wide range of models.

Works with all major webservers

Ready-to-use plugins : plug-ins for session management, user authentication, caching

Mojolicious

An amazing real-time web framework built on top of the powerful Mojo web development toolkit. With support for RESTful routes, plugins, commands, content negotiation, session management, form validation, testing framework, static file server, CGI/PSGI detection, first class Unicode support and much more for you to discover.

Features

  • Everything you need to build cloud-native web applications for state of the art container environments.

  • Powerful out of the box with RESTful routes, plugins, commands, Perl-ish templates, content negotiation, session management, form validation, testing framework, static file server.

  • Built-in non-blocking I/O web server, supporting multiple event loops as well as optional pre-forking and hot deployment, perfect for building highly scalable web services.

  • JSON and HTML/XML parser with CSS selector support.

  • Very clean, portable and object-oriented pure-Perl API

Dancer

Dancer is a web application framework designed to be as effortless as possible for the developer, taking care of the boring bits as easily as possible, yet staying out of your way and letting you get on with writing your code.

Dancer aims to provide the simplest way for writing web applications, and offers the flexibility to scale between a very simple lightweight web service consisting of a few lines of code in a single file, all the way up to a more complex fully-fledged web application with session support, templates for views and layouts

Dancer is packed with a standalone development server, which can be used for developing and testing apps. It also supports PSGI specification and, therefore, can run on a compliant PSGI server, including Mongrel 2 and Plack.

Features

  • Very Simple : Intuitive, minimalist and very expressive syntax.

  • Flexible : PSGI support, plugins and modular design allow for strong scalability.

  • Few dependencies : Dancer depends on as few CPAN modules as possible making it easy to install.

TAP

TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness. It decouples the reporting of errors from the presentation of the reports.

One of its major uses is for noise reduction; when you have a suite of many tests, making them TAP producers and using a TAP consumer to view them helps ensures that you will see everything you need to notice and diagnose breakage without being distracted by a flood of irrelevant success messages. It can assist other forms of analysis and statistics-gathering as well.

CGI::Application

CGI::Application makes it easier to create sophisticated, high-performance, reusable web-based applications. CGI::Application helps makes your web applications easier to design, write, and evolve.

CGI::Application judiciously avoids employing technologies and techniques which would bind a developer to any one set of tools, operating system or web server.

It is lightweight in terms of memory usage, making it suitable for common CGI environments, and a high performance choice in persistent environments like FastCGI or mod_perl.

CGI::Application aims to provide a framework for re-usable code that is based on the run mode concept, but in a way that avoids a lot of spaghetti code. Because it’s Object Oriented (OO), it can easily be extended and enhanced, and later we’ll be looking at some plugins that will make your job a whole lot easier.

CGI::Application encourages you to adopt a Model-View-Controller (MVC) framework. In the Web development world, MVC has emerged as a popular concept for engineering applications, although its roots predate the Web. The model is the actual business domain that you are working in. It includes the logic and rules that the application understands and enforces. The view is simply the user interface, and by default CGI::Application supports HTML::Template, although any templating solution can be used. Finally, the controller mediates between the model and the view. It takes input, passes it to the model components and invokes the view components as appropriate.

perlRandom.JPG

Moose

Moose is an extension of the object system, which takes the tedium out of writing object-oriented Perl. It is built on top of the MetaObject protocol (MOP) and provides complete introspection for all Moose-using classes. Moose borrows some of the best features from Perl 5, Smalltalk, BETA, Ocaml, Java, Ruby, Lisp.

Test::More

Test::More is the baseline unit testing module for Perl. It is not a complete testing framework; however, programs written in with Test::More output their results as TAP, which can be interpreted by a human or run through a TAP parser.

Interchange

Interchange is an open-source e-commerce web application server and platform. It is primarily used for developing customized e-commerce and catalog solutions.

Interested in reading more such articles from Kushagra Sharma?

Support the author by donating an amount of your choice.