So? Aside that it's not entirely true — Java run-time engines typically compile Java bytecode into native code at run-time — it is not standard behaviour to run Java programs from their sources. Perl's developers made a choice to parse the source every time, and Java should not be penalized for it.
I'm sorry: I was probably not clear. The timing for 'java' does not include the 'javac' step, but the perl timing includes the conversion of source to code for the interpreter. I was just suggesting that the 'time' commands were not timing the same things.
That is what I understood, so I guess I was the one who wasn't clear. I'm saying he *is* timing the same thing: The time it takes to run the program. Using javac is not part of running a Java program whereas parsing the Perl sources is part of running a Perl program. Perl and Java do things differently, but that doesn't mean he's not timing the same thing. (If they did things the same way, what would be the point of timing them?)