-w precedes lexical warnings allowed by the warning pragma; I suspect that they simply did not move with time.
use warnings gives you much more control over which warnings will be triggered, and also allows you to promote some warnings as fatal errors. It also applies only to the lexical area in which you are located, while -w will apply even to loadable modules that do not expect warnings (which, fortunately, are small and far apart).
source share