You better move that array splitting into your conditional, like so:
if (m/zaps/i) {
@zapschool = split (/\t/);
print NEWFILE "$zapschool[4]\n";
}
That will give you a performance boost because in your code all line get split, here just the neccessary lines.
Please note (good to impress your boss :) that you can do this in a oneliner:
C:\>perl -naF/\t/ -e "print qq($F[4]\n) if /zaps/" infile>outfile
or the counting:
C:\>perl -naF/\t/ -e "$hash{$F[4]}++ if /zaps/;END{print qq($_\t$hash{
+$_}\n) for sort keys %hash}" infile>outfile