my %data; while () { next if /^id/; my ($id, @cols) = split; ## first split my $cols = join('',@cols); ## Join @cols = split('',$cols); ## and then split push @{ $data{$id} }, \@cols; }