@text1 = (); @Section = split("\n", $filedata); foreach (@Section) { if (/^#begin/ .. /^#end/) { $eval .= "$_\n"; } if (/^#begin2/ .. /^#end2/) { push(@text1, $_); } } @arrBlock = (); for ($x=1;$x<@text1-1;$x++) { push(@arrBlock,$text1[$x]); } this seems valid, i can print $arryBlock[index] but i cant do a foreach loop through it? here is an example file: #begin aaa bbb ccc ddd #end #begin2 xxx ccc bbb #end2