use strict; use Data::Dumper; my @elements = map { /^\s*$/ ? () : [split /\s+/] } ; print Dumper(\@elements); __DATA__ 1 1234 gg123456789 000-12345-1234-111 12 1234 gg123456789 000-12345-1234-111 123 1234 gg123456789 000-12345-1234-111