Perl - Practical Extraction and Report Language
I like Perl. I have never worked with any tool that is easier to get going
or can rip through text faster. I have used it for bulk file editing, database
management and CGI scripting. I first encountered Perl in 1997.
Below is a list of some of the programs I have written in Perl.
- I am using Macromedia Ultradev and Fireworks to build this web site.
When Fireworks creates the the menus above it produces a javascript file
and an HTML page that contains the graphic links and another Java script
function that defines the menus. Given the large number of pages in this
web site, I wanted to be able to update the menus on all of the pages
without updating all of the pages. I created a Perl program to merge
the javascript code in the fw_menu.js file and the html file and create
a single javascript file containing all the javascript. In addition,
it inserts a variable reference "pathToRoot" so that all of
the absolute link paths in the generated javascript become relative to
the page itself.
- I had designed an application framework which used identical APIs in
both C++ and Java. I need an easy way to move business logic from the
C++ version to the Java version and back. Java objects have to be 'new'ed
and C++ object do not. I create a Perl program that could convert back
and forth between Java and C++ versions.
- In building the AS/400 conversion process, I also needed to convert
CL (shell scripts like language) programs to the C++ framework. For CL
conversion, I did not need the same level of complexity as for RPG. I
still used a recursive parser, but there is only a single block command.
This program read the CL scripts and create framework compatible C++.
- In building the AS/400 conversion process, we had nearly 5000 source
files to sort through, in the end we needed 662 converted functionalities.
I built a Perl program that scanned all 5000 files analyzing the includes
(copy books, data file definitions and data structure definitions). From
the analysis it selected the 502 RPG and 160 CL programs that actually
needed to be run through the converters to produce a running NT or UNIX
based application server.
- Porting an AS/400 RPG system to C++, in the new normalized database
hundreds of attributes moved from their original tables. Additionally,
we wanted to break the source code into the business objects that each
piece of code logically fit into. I created a map between the old and
new field structures and a Perl program that could be run against any
piece of RPG source to product a piece of C++ that was code that was
customized to be inserted in a specific C++ business object.
- The biggest project I ever did in Perl. It started as a web database
to replace a number of proprietary C based CGI scripts in managing a
number of web sites that were being migrated to standard commercial web
hosting sites where c was not available. When I was done I had a Perl
based object oriented set of applications for managing an entire database
driven web site. There is the core database module, an administration
module, a template processing module, an e-mail form module and a data
entry module. With this system an Administrator logs into the administration
module where they can maintain databases, page templates, etc. Because
of the internal database manager no external database is required, response
times are more limited by the transmission time than the database. I
have tested this system with up to about 150,000 records in a specific
table. The database support relational queries and templates can be nested
to provide extremely varied results.