# 1. Convert "shift" to "pop" to save 2 chars # 2. Convert leading "if" to trailing "&&" to # squeeze out one space char # 3. Convert !(conditional)&&(action) to # (conditional)||(action) for one char # # Savings = 4 chars (86 total chars) sub p{my($n,@e,$o)=@_;$_{$_=join$",sort@_,$/}++||print;p(++$o,--$n,@e)while$n-1}p(pop)