Use of reserved word "our" is deprecated at ./step_through.cgi line 27 (#1) (D) The indicated bareword is a reserved word. Future versions of perl may use it as a keyword, so you're better off either explicitly quoting the word in a manner appropriate for its context of use, or using a different name altogether. The warning can be suppressed for subroutine names by either adding a & prefix, or using a package qualifier, e.g. &our(), or Foo::our(). Global symbol "$post_data" requires explicit package name at ./step_through.cgi line 27 (#2) (F) You've said "use strict vars", which indicates that all variables must either be lexically scoped (using "my"), or explicitly qualified to say which package the global variable is in (using "::"). Use of reserved word "our" is deprecated at ./step_through.cgi line 28 (#1) Global symbol "$username" requires explicit package name at ./step_through.cgi line 28 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 29 (#1) Global symbol "$on_off" requires explicit package name at ./step_through.cgi line 29 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 30 (#1) Global symbol "$message" requires explicit package name at ./step_through.cgi line 30 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 31 (#1) Global symbol "$path_to_authorize" requires explicit package name at ./step_through.cgi line 31 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 32 (#1) Bareword "our" not allowed while "strict subs" in use at ./step_through.cgi line 32 (#3) (F) With "strict subs" in use, a bareword is only allowed as a subroutine identifier, in curly brackets or to the left of the "=>" symbol. Perhaps you need to predeclare a subroutine? Unquoted string "our" may clash with future reserved word at ./step_through.cgi line 32 (#4) (W) You used a bareword that might someday be claimed as a reserved word. It's best to put such a word in quotes, or capitalize it somehow, or insert an underbar into it. You might also declare it as a subroutine. Array found where operator expected at ./step_through.cgi line 32, at end of line (#5) (S) The Perl lexer knows whether to expect a term or an operator. If it sees what it knows to be a term when it was expecting to see an operator, it gives you this warning. Usually it indicates that an operator or delimiter was omitted, such as a semicolon. (Do you need to predeclare our?) syntax error at ./step_through.cgi line 32, near "our @junk" Global symbol "@junk" requires explicit package name at ./step_through.cgi line 32 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 33 (#1) Global symbol "$runme" requires explicit package name at ./step_through.cgi line 33 (#2) Use of reserved word "our" is deprecated at ./step_through.cgi line 34 (#1) Global symbol "$output" requires explicit package name at ./step_through.cgi line 34 (#2) Execution of ./step_through.cgi aborted due to compilation errors (#6) (F) The final summary message when a Perl compilation fails. Uncaught exception from user code: Execution of ./step_through.cgi aborted due to compilation errors.