Ah, I'm glad to see the question was re-opened.
So, here's an answer. If you are dealing mainly with text processing, it's difficult to achieve parity with, let alone surpass, Perl's performance. The whole language is designed around fast text processing. Furthermore, efficient string manipulation in Java is much more cumbersome -- codewise -- than in Perl.
Library-wise, Java hardly has an edge over Perl. Mostly, Java has an edge in the type of libraries which are useful for a language like Java, and Perl has an edge in the type of libraries which are useful for a language like Perl. So, a Java person, not knowing Perl, might look at what is available and detect some "deficiencies". The Perl person would not notice them, though, because they do things people don't do in Perl. And vice versa.
Another important point of Perl is that the boiler-plate level is low. It is low even among languages with low boiler-plate. You just can't compare it to Java in this respect.
And Perl is specially oriented towards scripting needs. For instance, if I write this:
#!/usr/bin/perl
while(<>) {
m%//(.*)% && print $1;
}
I'm doing the following:
1. If there were arguments passed on the command line,
1. For each argument passed on the command line
1. Open the file with that name
2. For each line of it
1. If the line has a Java-style single-line comment,
1. Print the comment
2. Otherwise,
1. Open the stdin
2. For each line of it
1. If the line has a Java-style single-line comment,
1. Print the comment
This means I can get working scripting code much faster with Perl than with most other languages. Which is a very important property if you often need a one-time-only script. Which is not the case of most people, but is certainly the case for some.
So, in that regard, Perl is certainly superior to Java. I won't bother enumerating the points in which Java is superior.