in reply to executing code within a regex

It isn't entirely clear what you're seeing compared to what you expect to see, but I can't see a problem with the code you show under 5.8.3 on Linux.

One thing that might be worth a try is to replace the declaration:

my @conds;
with:
our @conds;
- depending on precisely how you're using this in the real code, it may be that the regexp-eval is failing to see the right variable.

Hugo