CGI.pm uses objects to create Web fill-out forms on the fly and to parse their contents. Instead of remembering the syntax for HTML form elements, developers can just make a series of Perl function calls. An important fringe benefit of this is that the value of the previous query is used to initialize the form, so that the state of the form is preserved from invocation to invocation.
Foswiki is wiki software, supporting the editing of Web pages in an ordinary Web browser by end users. What makes Foswiki special is that it supports the embedding of active and passive macros that enhance the page content (e.g. with global or dynamic information) and allow end-users to build applications that store and process data in a structured manner.
HEBCI is a technique that allows a Web form handler to transparently detect the character set with which its data was encoded. By using carefully-chosen character references, the browser's encoding can be inferred. Thus, it is possible to guarantee that data is in a standard encoding without relying on (often unreliable) Web server/browser encoding interactions.
The HTML::Defaultify Perl module is designed to allow CGI programmers to present forms with some fields filled in, which is handy for letting users correct bad input, show records to be edited, and much more. The main function, defaultify(), takes any block of HTML and a hash of field names and values, and returns the HTML with the form fields set to those values. Value lists for multiple same-named fields are supported, as are pages with multiple forms. Several different input formats are supported for compatibility with existing tools.
HTML::Mason is a full-featured web site development and delivery system. Mason allows web pages and sites to be constructed from shared, reusable building blocks called components. Components contain a mix of Perl and HTML, and can call each other and pass values back and forth like subroutines. Components increase modularity and eliminate repetitive work. HTML::Mason is most powerful when used in conjunction with mod_perl, but can be used in standalone applications as well.
JSON::XS implements JSON for Perl. Unlike other modules, its primary goal is to encode to syntactically correct JSON and flag invalid JSON while decoding. It ensures round-trip integrity of data types while being intuitive to use. Currently being the fastest of the JSON encoders available for Perl, it supports a variety of format options, such as single-line, ASCII-only, or pretty-printed, and can be tuned for speed or memory usage. It comes with a wealth of documentation describing usage and implementation details.
Linguaphile is a simple command line language translator. It is open source, platform independent, and programmed in Perl. Linguaphile currently supports the following languages: Afrikaans, Alawa, Albanian, Arrernte, Basque, Belarusian, Bulgarian, Catalan, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Finnish, French, Galician, German, Greek, Hawaiian, Hungarian, Icelandic, Indonesian, Interlingua, Irish, Italian, Kala Lagaw Ya, Korean, Kriol, Latvian, Lithuanian, Malay, Maltese, Maori, Norwegian, Pitjantjatjara, Polish, Portuguese, Romanian, Russian, Samoan, Serbian, Slovak, Slovenian, Spanish, Swahili, Swedish, Thai, Tok Pisin, Turkish, Ukrainian, Warlpiri, and Welsh. The Spanish to English translation is the most useful at this stage.
PTM is a Perl/HTML hybrid language, written entirely in Perl, and similar to PHP in tag syntax. It allows for the ease of PHP-style inline code in your dynamic HTML documents, while supplying the power of Perl that many find to be sorely lacking in PHP. PTM's parser application, referred to as the PPA, acts as an Apache plugin, a standalone parser placed in the cgi-bin, or a command line parser (for debugging purposes), and is distributed for both Unix and Window platforms. Additionally, PTM wraps many variables common to PHP to ease the transition between PTM and PHP when switching back and forth.
VoiceXML::Client is a library that provides Perl programs with the ability to act as a user agent that fetches Voice Extensible Markup Language (VoiceXML) documents, parses them, and then executes the instructions therein by playing prompts and collecting user DTMF input/voice recordings through a handle to some type of telephone or other device interface. VoiceXML::Client's focus is on the client side. The XML documents are generated by a distinct process of your choice, unrelated to the library.