Just gzwrite @your_array;
in reply to different output from gzwrite
The reason is the same reason you get similar output if you print "@some_array"; when each element ends with a newline. Each element is separated with $" (also known as the list separator), which defaults to a space. Either leave out the quotes, locally change $" to '' or use something like join '', @your_array;
For an in depth treatment see perlfaq5 and search for "weird spaces" - or at a prompt type perldoc -q "weird spaces"