$str = join '' => ; @arr = map { m!(.*?)!si } # extract first grep { m!maps!si } # filter by content $str =~ m!(.*?)!gsi; # split on contentmodel print @arr; __DATA__ 5 35 some text 4 45 some text 3 25 maps 2 15 some text