It looks like the elements in your array must already end in newlines (and have no newlines otherwise). That may be a valid assumption for your situation, but if you have more complicated data you want to recover, you may want to use something like Data::Dumper instead.
If all you're doing is printing an array to a file, you can do it without a for loop, which seems to be quite a bit faster on my laptop using this benchmark code:
use Benchmark 'cmpthese';
my @a = map {"$_\n"} 1..1000000;
cmpthese(100, {
forloop => sub {
open FILE, ">file.out" or die "Can't open file: $!\n";
print FILE $_ for @a;
close FILE;
},
array => sub {
open FILE, ">file.out" or die "Can't open file: $!\n";
print FILE @a;
close FILE;
}
});
Results:
Benchmark: timing 100 iterations of array, forloop...
array: 28 wallclock secs (22.62 usr + 2.74 sys = 25.36 CPU) @ 3
+.94/s (n=100)
forloop: 69 wallclock secs (61.52 usr + 2.75 sys = 64.27 CPU) @ 1
+.56/s (n=100)
Rate forloop array
forloop 1.56/s -- -61%
array 3.94/s 153% --
-- Mike
--
just,my${.02} |