Another interesting question: is it faster to concat data and then write once, or is it faster to issue one syswrite for each buffer?
I'm afraid I'll have no time to benchmark.

You try to read data from a broken RAID. And your main problem is performance? Sorry, I don't get it. You should be happy with every single bit you can still read. And while one can use perl for data rescue, I think you should not use perl for the job. There are better tools, and you seem to know none of them, including Perl. Pay an expert to recover your RAID. If you need your data back fast, you'll probably have to pay an extra fee.

Questions you should ask later: Why did nobody notice that the RAID had problems before it failed? Why is there no recent, verified backup of the RAID?

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)