http://qs1969.pair.com?node_id=308131


in reply to Need help shortening this

after a few hours work, this is the best that i can come up with that doesn't deviate from your original algorithm. It's shorter by some 50+ characters (but still 6 characters over an 80-character, 4-line sig), and i'm sure more could be done; i just don't see what at the moment...
# This has been tested with perl 5.6.1 on Solaris 9 only @a=map{sub{my$a="push\@s,($_[2]".join($_[1],('(pop@s||1)')x$_[0])."$_[ +3])";sub{ eval$a}}->(@$_)}[1,'','','x2'],[2,'+'],[2,'*'],[0,'',1],[1,'','print c +hr'];&{$a [$_]}for map{($f=ord(substr'"!3!+"%"#*9):B"--11$2A);"-!$):)1+!-%")*%") +*-*%"!#'. '#))*%2!2%"##))B)1!#"*"A$)",+B"$")*%"#)C*-1!3"-"%"#*A)1!1+,%"1*B',$_,1 +)-33)%8,$ f/8}0..111
anyone else?
jynx

Replies are listed 'Best First'.
Re: Re: Need help shortening this
by mtve (Deacon) on Nov 20, 2003 at 21:41 UTC
    print'JUST ANOTHER PERL HACKER'

    Ok, just kidding :) With no changing of language, neither with any diligence:

    @_=@{([1,'','','x2'],[2,'+'],[2,'*'],[0,'',1],[1,'','print chr'])[$_]} +,eval" push\@s,$_[2]".join($_[1],('(pop@s||1)')x$_[0])."$_[3]"for map{($f=ord +()-33) %8,$f/8}'"!3!+"%"#*9):B"--11$2A);"-!$):)1+!-%")*%")*-*%"!##))*%2!2%"## +))B)1! #"*"A$)",+B"$")*%"#)C*-1!3"-"%"#*A)1!1+,%"1*B'=~/./g

    ... unpack is juts crying for this.