in reply to An (almost) useful idiom; needs work.

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.