Is there any considerable speed advantage to using the string instead of the array? Or does it have to do with memory usage?
Using strings instead of arrays will definitely use less memory as each scalar has a certain amount of overhead so two strings vs. two arrays of strings will use less. Another way to reduce memory usage is to use a piped open and read each line in a while loop.
As for speed, it depends on how much IO overhead is involved from reading the output of an external program. But in general using strings should be faster than using arrays. As always, if in doubt use Benchmark or one of the profilers to determine the speed differences.
This may also provide some help: When perl is not quite fast enough