I just tried to give it a long, hard look to see if maybe I could make sense of what you're trying to do. I don't think I understand how it's supposed to work. You'll need to explain your thoughts on how it's all supposed to go together.
I have a vague idea of why it breaks though:
/^$re_types(.*)$/ ... !/^$1/ and push @{$type{$1}}, $2;
As long as the left side evaluates true, the right side will never be looked at before the next evaluation, which is on the next iteration. I get the vague feeling that you're being surprised by which $1 is used when. At least if my impression is correct that whichever test you put last in the loop will be the one that breaks.
I don't know though. I'm really quite confused as to how your code works (not) at all, and wondering when this is supposed to be a useful trick.
Makeshifts last the longest.
In reply to Re: An (almost) useful idiom; needs work.
by Aristotle
in thread An (almost) useful idiom; needs work.
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |