What task would you NOT use perl for?
Any task that harder in Perl than it is in some other language :-) For example:
- Tasks that need something faster than Perl can manage (assuming that it's not easier to throw hardware/intelligence at the problem). Then I might go for a good Lisp or Eiffel. If there is really no other choice maybe even C++ or C :-)
- Tasks where a natural implementation wouldn't be a good fit. It's easier to write a declarative/logical program in Prolog. It's easier to write functional/currying code in ML. Etc.
- Tasks where there is better support in another language. For example I'm looking for programmatic control of MSIE on Windows Ruby's WaTiR rocks (in my opinion anyway), so I'd probably use Ruby.
- Tasks where the people I'm working with don't know Perl. If my organization or even just the development team is better at some other language then I would think long and hard before trying to get people to switch to Perl - even if I think it would be a better choice technically. It's often more pain than it's worth.
- Tasks that are memory restricted. The environment needed to run Perl is quite large and Perl is mostly optimized for speed, not memory usage. If you can't throw more hardware at the problem some more memory efficient language would be a better choice.
- Tasks where Perl won't run on the platform in question. For example Java runs on a lot more mobile devices than Perl does.