my @section; my $i = -1; foreach (split /\n/, $str) { if (/^===Comments===$/) { ++$i; next; } next unless $i >= 0; $section[$i] .= "$_\n"; } my $comments1; my $comments2; my $comments3; if ($section[0] =~ /\n(.*?)=Microarray Data=/gs){ $comments1 = $1; } if ($section[1] =~ /\n(.*?)=Pathway Information=/gs){ $comments2 = $1; } if ($section[2] =~ /\n(.*?)=Aditional Info=/gs){ $comments3 = $1; } print $comments1, $comments2, $comments3;