Thus I created some tests, which you can see at http://github.com/TJC/PerfTesting.
I expected Perl to do badly here, as it was up against the natively-compiled Go, and the JVM, which I've heard is highly optimised. (Although it always seems to take a while to load for me, and uses tonnes of RAM)
However Perl did surprisingly well!
I repeated the tests for three sizes of data set. It's curious to note that Perl and Go scaled linearly with the size of the input data, while Scala did better, taking the lead once the file sizes increased.
Edit: After some suggestions from the crowd, I updated and re-ran the tests.
The results follow..
|Language||100k rows||1m rows||10m rows|
|Perl||1.089 s||10.96 s||111.3 s|
|Scala||1.857 s||9.835 s||89.05 s|
|Go||1.682 s||16.77 s||154.3 s|
In doing this test, I was running Ubuntu 10.04 64bit, and:
Perl 5.10.1 w/Text::CSV and Text::CSV_XS
Go (may 2010 build) w/csv.go
Scala 2.8.0.RC1 on Java 1.6 w/opencsv.sf.net
NOTE: This post has now been updated/superceded by: http://blog.dryft.net/2010/05/new-results-for-perl-vs-scala-vs-go-vs.html