Although I think your attempt is excellent, I will comment on the "uninitialized variable" warnings you get. This is happening because wherever you have a conditional based on a variable that may not contain a value, or even just printing a non-initialized variable will produce this warning. You may want to look at the lines that the warnings are producing and looking at every variable to see if it does actually contain a value. Here's a simple test:
if ($var) {
print "\$var contains $var";
}
else {
print 'no content in $var';
}
I know its simplistic but it will certainly help, testing as I've found is very important. It saved me from a 14 GB error log!
BlackJudas