#!/usr/bin/perl use Data::Dumper; $Data::Dumper::Indent = 1; my $ary = []; my $i = -1; while () { chomp; s/\r//; /^Mtf.*\s(\S+)$/ and push @{ $ary->[++$i] }, $1; # next array /\s+St f\d+/ and push @{ $ary->[$i] }, $_; } print Dumper($ary); __DATA__ - your data here -