>>63
ツッコミ所は色々あるが、たとえば、

if sub {$a = 0};

っていうことされたら困るだろ。subと{}は結合力が最も強い「項」であるので先に結合してしまう。
従って無名関数への参照が条件とコンパイラが解釈してしまう(んで構文エラー)。

loop_or_condition(xxx){yyy}の()と{}はセット。