# variation with grep @a=qw(abc def ghi jkl mno pqr stu vwxyz); @g = grep /i/../u/, @a; for (1..$#g-1) { print "$g[$_]\n"; } # with map @a=qw(abc def ghi jkl mno pqr stu vwxyz); $flag=-1; sub go { print "$_\n" if ($flag>0); if ($_ =~ /i|u/) { $flag = $flag * -1 } } @g = map{ &go($_) => $_ } @a;