On a stylistic note, the layout that you've used:
sub main
{
.. some code ..
.. more code ..
}
main();
drives me absolutely bananas.
The routine main is not, and never will be, a sub-routine. main is main. The main-line program. That's what gets run.
How about instead structuring it as
{
.. some code ..
.. more code ..
}
By definition, that's implicitly main. You could even pretend it's a shell script (from whence Perl came), and do this:
.. some code ..
.. more code ..
My personal preference is to have braces, if only to remind me that this is a procedure (even if it is really close to a shell script).
Alex / talexb / Toronto
Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.