http://www.perlmonks.org?node_id=75085


in reply to Triangle Golf

I offer, at 118 (not counting newlines):
@ARGV='ctriangle.txt';sub n{print " "x(40-$r/2).$x.$\};$/=$w;$_=<>; ($r=length($x.=" $_"))>$=and $==$r,n,$x=''for split;n


japhy -- Perl and Regex Hacker

Replies are listed 'Best First'.
Re: Re: Triangle Golf
by koolade (Pilgrim) on Apr 24, 2001 at 23:04 UTC

    The above didn't work for me. $\ is undefined by default so the newline doesn't print and $= is 60 by default so the tests fail. This is the best fix I could come up with, unfortunately with one extra character:

    @ARGV='ctriangle.txt';sub n{print " "x(40-$r/2)."$x\n"};$/=$w;$_=<>; ($r=length($x.=" $_"))>$/and $/=$r,n,$x=''for split;n;
      I'm sorry. I posted the code without testing it. I had meant $/ instead of $\, but I see that wouldn't have worked. Sorry about that.

      japhy -- Perl and Regex Hacker