The search for EDUCATION just reports the number of lines (paragraphs in this case) which have at least one match. I believe that this is because the search is in a scalar context.
The simplest change would be to replace the search with a substitution like:
$count += (s/EDUCATION/EDUCATION/g);
but that's probably not so efficient. Another approach would be to give the original search a list context like:
$count += () = (/EDUCATION/g);
but that's not quite as readable. To put this into context, you could rewrite the while block to:
while (<IN>) {
if (/^\d+\sof\s\d+\sDOCUMENTS$/mx .. /^No.\s(\w+)$/mx){
$casename=$1;
# $count += (s/EDUCATION/EDUCATION/g);
$count += () = (/EDUCATION/g);
}
}