in reply to Illegal declaration of subroutine Error

check the errata for the book :) Also use diagnostics ( and these checklists Basic debugging checklist , brian's Guide to Solving Any Perl Problem, CGI Help Guide , Troubleshooting Perl CGI scripts ... More generic advice :) On debugging, verify everything, talk to teddybear ... checklists and more , perltrap, perltrap, Common Perl Pitfalls / perltrap)

$ perl -le " sub foo { } " $ perl -le " sub foo spaces { } " Illegal declaration of subroutine main::foo at -e line 1. $ perl -le " use diagnostics; sub foo spaces { } " Illegal declaration of subroutine main::foo at -e line 1 (#1) (F) A subroutine was not declared correctly. See perlsub. Uncaught exception from user code: Illegal declaration of subroutine main::foo at -e line 1.

subs don't like spaces in names, or random *stuff* between end of name and { opening brace {

see perlsub for details

see also

chromatics free book Modern Perl a loose description of how experienced and effective Perl 5 programmers work....You can learn this too.
Learn Perl in about 2 hours 30 minutes