in reply to How do you move within an array using foreach?

I read the question as 'print everything after [foo] until you get to [foo2] - don't print [foo2] itself but print everything that comes after it'.
cat foofile | perl -ne 'if (/\[foo\]/){$print++;next};next if /\[foo2\ +]/;print if ($print)'
JJ