Perl Projects

The following is a list of some of the ideas and projects that I have worked on in my free time that actually coalesced into something useful for consumption.

Template::Alloy

Template::Alloy represents the mixing of features and capabilities from all of the major mini-language based template systems (support for non-mini-language based systems will happen eventually). With Template::Alloy you can use your favorite template interface and syntax and get features from each of the other major template systems. And Template::Alloy is fast - whether your using mod_perl, cgi, or running from the commandline. There is even Template::Alloy::XS for getting a little more speed when that is necessary.
(Home Page | CPAN)

CGI::Ex

CGI::Ex is a CGI application suite. It attempts to build upon some of the core CGI libraries, while giving the option of extending them or replacing them. CGI::Ex currently offers advanced form validation with duplicated JavaScript validation (CGI:Ex::Validate), form filling (CGI::Ex::Fill), debugging (CGI::Ex::Dump), application framework (CGI::Ex::App), and has initial work for lightweight templating (CGI::Ex::Wrap). In most of the cases it is possible to use other existing modules in place of the builtins. Although the CGI::Ex modules are intended to integrate well - they are also designed for use as separate modules as well so functionality can be picked and choosen.
(Home Page | CPAN)

Data::URIEncode

Data::URIEncode allows for encoding/decoding flat hashes or arrayrefs into/from complex data stuctures. This allows for a simple form submission to arrive as a complex data element.
(Home Page | Download)

Taint::Runtime

Taint::Runtime allows for the runtime enabling/disabling of taint mode. It also offers some convenience functions for tainting/untainting data.
(Home Page | Download)

PerlCAD

PerlCAD is a Perl based drafting program. The original concept was based on PerlQT. The next versions will be based around OpenGL. It is planned to have all of the basic features necessary for doing drafting, as well as some extended features found in other CAD packages. The user interface is intended to be similar to AutoCAD™.
(Home Page | Download)

Net::Server

Net::Server is intended to be a Perl based extensibile daemon for use on the internet. It has been used to create mail servers, webservers, RPC servers and a variety of others. It has been around for some time.
(Home Page | CPAN)

File::NFSLock

File::NFSLock enables safe locking on NFS mounted files on unix/linux systems. Locking is very fast (although not as fast as native flock). Allows for blocking and non-blocking locks with experimental shared locking. I have turned maintenance over to Rob Brown.
(Home Page | CPAN)

Net Switcher (Quickswitch)

Net Switcher allows you to store custom network configurations which can then be choosen at boottime, or changed at anytime. The orignal code was written by Mohit Muthanna. I rewrote the the codebase to increase code clarity, reuse, and introduce OO. Mohit Muthanna is the current maintainer.
(Home Page | Sourceforge)