Ah this is interesting, thanks Parv. Im playing with your anonymous sub refs type thing now. Im returning undefs from failed subs. Encouraging that you also think it should work.
I wandered into writing it quite naturally, it seemed intuitively right.
Thanks to the other posters for your thoughts too. I was specifically refering to the syntactic usage of OR even if the question sounded vague. Maybe it is more subtle than it seems,
the expression (which I call a block) must behave as the return value of the sub. Damn my C legacy.