Thanks, ikegami. As I mentioned in Re^2: RFC: Tutorial: use strict; now what!?, I'm already replacing the generic, abstract error with concrete examples. But sorry, I'm not willing to discuss (with my target audience) which portions of error output stem from which source or which phase of compilation or execution. We're splashing around in the very shallow end of the pool.
Agree that my explanation of bareword is a little too loose. But I'd rather not introduce the term 'identifier' since that would only require yet another definition. The definition of bareword given in perldata is a tad too formal and perhaps even misleading:
A word that has no other interpretation in the grammar will be treated as if it were a quoted string.
I don't pretend to have a better explanation up my sleeve than what I've given so far; but I'm working on it.
I'm not the guy you kill, I'm the guy you buy. —Michael Clayton