Depending on the definitions of "heavy" and "realtime" I wouldn't always exclude your (1) and (2) :-)
I use Perl for (4) every day, as I suspect to many other Perl developers!
When would I not use Perl?
- I probably wouldn't use it on a project where everybody else on the development team was using another language
- I probably wouldn't use it in an organisation that had standardised on another language.
- I wouldn't use it in all the many places where you cannot run Perl (consoles, many embedded systems, phones, many PDAs, etc.)
- I wouldn't use it where it was too slow (once I had actually verified that it actually was too slow).
- I wouldn't use it for rule based or declarative coding if I had something more appropriate like Prolog sitting around. This is one of the development paradigms that Perl doesn't support nicely. With Perl 6 (and some new grammers) this will hopefully change :-)
- I wouldn't use it to develop with a platform or API where another language is better supported (if I need to do some serious Mac OS X coding I'm going to go brush up my Objective C rather than play with CamelBones in Perl).