Whoops, I dropped the opening brace from my de-golf'ing. I'll correct that above, but also try to explain it a little more explicitly.
The thing to remember is that the perldoc perlrun entry for -n is applied literally.
Again from perldoc:
while (<>) { ... # your program goes here }
So -n literally puts that code around yours.
while(<>){ / /, $;{$`}++}{print $_, $/ ^= "*" for % # this line is what # was inside the single qu +otes }
Literally. The }{ closes the while loop and lets you add extra code outside the while loop. And since -n will always add that extra closing brace, you need to open one. Resulting in:
while(<>){ / /, $;{$`}++ } { print $_, $/ ^= "*" for % }
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)
In reply to Re^7: parsing output of UNIX `who` command (golf)
by chargrill
in thread parsing output of UNIX `who` command
by chinamox
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |