Unfortunately Perl coding culture includes a few deeply entrenched bad habits such as using horribly short variable names, overuse of the default variable, and using regex when a simpler string match would suffice. These subtle bad habits make typical perl code hard to follow and thus reflect badly on the language itself.
IMHO it's OK to use $_ in small scope contexts, like in a tight loop, but very offensive when $_ refers to an operation that occurred three pages back.