http://qs321.pair.com?node_id=634228

I haven't done one of these in a while, but got the idea for this while I was tracking down some misbehaving code that I had to replace - having seen this presentation at YAPC::NA helped.

Apologies for the non-standard form.

*{" |$ / |$ /|___|"}=sub{ust};*{qq%.| $/ |--.$/ | |%}=sub{q@a +cker,@}; *{qq* __.$ / --|$ / |__|*}=sub{q.nother.};*{qq#.---$/ |__)$/ | #}=s +ub{erl}; print $ _ ,$ _ -> (), $ / for grep {m { ^[ .|] }x } sort keys % { +* :: };

--chargrill
s**lil*; $*=join'',sort split q**; s;.*;grr; &&s+(.(.)).+$2$1+; $; = qq-$_-;s,.*,ahc,;$,.=chop for split q,,,reverse;print for($,,$;,$*,$/)