Here's the actual set of errors that I saw listed when I placed your code into a file called 'test.perl' and did:
perl -cw test.perl
Note that the hash array %total, refered to in the second line of the error report, appears on only one line in the code, where values are assigned to it, and it's never used thereafter. Also, all the other variables mentioned in this list occur only once, embedded in those long print statements for table rows:
"my" variable $name masks earlier declaration in same scope at line 17 +. Global symbol "%total" requires explicit package name at line 47. Global symbol "$ttlhrsbottum" requires explicit package name at line 5 +8. Global symbol "$ttlhrsbudrow" requires explicit package name at line 5 +9. Global symbol "$ttlhrscaptan" requires explicit package name at line 6 +0. Global symbol "$ttlhrshughes" requires explicit package name at line 6 +1. Global symbol "$ttlhrsmarchand" requires explicit package name at line + 62. Global symbol "$ttlhrsmedina" requires explicit package name at line 6 +3. Global symbol "$ttlhrsnewbrough" requires explicit package name at lin +e 64. Global symbol "$ttlhrsrico" requires explicit package name at line 65. Global symbol "$ttlhrsshelton" requires explicit package name at line +66. Global symbol "$ttlhrssweredoski" requires explicit package name at li +ne 67. Global symbol "$ttlhrstryon" requires explicit package name at line 68 +. Global symbol "$ttlhrswerner" requires explicit package name at line 6 +9. Global symbol "$ttlhrswilliamspearce" requires explicit package name a +t line 70. /tmp/test.perl had compilation errors.
So, removing "use strict" gets rid of the error reports, but does it make the table look the way you'd want it to? (Or are these variables just residue from some older version of the script, and they shouldn't be here anymore anyway?)

update: Since you're using CGI anyway, why not use its various methods for printing HTML structure, like $q->header, $q->start_html, $q->table, $q->Tr etc, rather than struggling to type all those HTML tags yourself into quoted strings? It could make things a lot easier and more legible for you.

one more update: It looks like your table rows are devoted to individual names -- and these names are related to the undeclared variables, in addition to being used as hash keys in one of your data structures. As you work on fixing this, consider that you can -- should -- print the table rows in a loop, just like the one you had earlier in the code:

foreach $name (@data) { ... # print a table row for $name }

In reply to Re: use strict by graff
in thread use strict by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.