[] [abc] [def] [] [] [ghi] [] [] 8 <-- This is what gives. split(/\n/, $data) [] [abc] [def] [] [] [ghi] 6 <-- Not 8. Failed to emulate . split(/\n/, $data, -1) [] [abc] [def] [] [] [ghi] [] [] [] <-- Extra line 9 <-- Not 8. Failed to emulate . split(/^/m, $data) [] [abc] [def] [] [] [ghi] [] [] 8 <-- Bingo!