http://www.perlmonks.org?node_id=964770


in reply to grab 2 blocks of texts from file

Your code doesn't do what you've specified. Maybe you didn't post all of it?

It builds a string into the $eval variable containing the first block of text from your file (including your markers).

It then pushes the lines from the second block (including your markers) into @text1.

Then it copies @text1 minus your markers over to @arrBlock.

So in the end, @arrBlock contains your second block and @text1 contains your second block with the markers...

It would probably be more efficient to do an array slice:

@firstblock = @text1[1..($#text1-1)]; # remember the left index of the slice can never be greater than the r +ight... no -1

Not sure what you mean by not being able to do a foreach loop through it:

foreach $value (@arrBlock) { print "$value\n"; }