Benchmark: timing 200000 iterations of A_unpack_line_no_array, substr_into_array, substr_no_array, unpack_line_into_array, unpack_line_no_array... A_unpack_line_no_array: 2 wallclock secs ( 2.53 usr + 0.00 sys = 2.53 CPU) @ 79051.38/s (n=200000) substr_into_array: 3 wallclock secs ( 4.02 usr + 0.00 sys = 4.02 CPU) @ 49751.24/s (n=200000) substr_no_array: 1 wallclock secs ( 0.84 usr + 0.00 sys = 0.84 CPU) @ 238095.24/s (n=200000) unpack_line_into_array: 4 wallclock secs ( 4.22 usr + 0.00 sys = 4.22 CPU) @ 47393.36/s (n=200000) unpack_line_no_array: 2 wallclock secs ( 2.10 usr + 0.00 sys = 2.10 CPU) @ 95238.10/s (n=200000) Rate unpack_line_into_array substr_into_array A_unpack_line_no_array unpack_line_no_array substr_no_array unpack_line_into_array 47393/s -- -5% -40% -50% -80% substr_into_array 49751/s 5% -- -37% -48% -79% A_unpack_line_no_array 79051/s 67% 59% -- -17% -67% unpack_line_no_array 95238/s 101% 91% 20% -- -60% substr_no_array 238095/s 402% 379% 201% 150% --