On Wed, Mar 07, 2001 at 11:44:16PM -0500, Keith Calvert Ivey wrote: > Using Robin's change at the start and omitting most of the dollar signs > (to be restored later with a regex), I've reduced it from the original > 526 (http://www.cs.cmu.edu/~dst/DeCSS/Gallery/qrpff.pl) to 503 bytes: > > $_='$/=\2048;while(<STDIN>){$a=29;c=142;if((@a=unx"C*",_)[20]&48){h=5; > _=unxb24,join"",@b=map{xB8,unxb8,chr(_^$a[--h+84])}@ARGV;s/...$/1$&/;d= > unxV,xb25,_;$b=73;e=256|(ord$b[4])<<9|ord$b[3];d=d>>8^(f=(t=255)&(d > >>12^d>>4^d^d/8))<<17,e=e>>8^(t&(g=(q=e>>14&7^e)^q*8^q<<6))<<9 > ,_=(map{_%16or+t^=c^=(m=(11,10,116,100,11,122,20,100)[_/16%8])&110;t > ^=(72,@z=(64,72,$a^=12*(_%16-2?0:m&17)),$b^=_%64?12:0,@z)[_%8]}(16..271) > ) [_]^((h>>=8)+=f+(~g&t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g; > s/\b[c-q_]\b/\$$&/g;eval This starts with an assignment to $_, using five chars + text. You can save one char this way: s''$/=\2048;while ... print+x"C*",@a}'; Abigail ==== Want to unsubscribe from Fun With Perl? Well, if you insist... ==== Send email to <fwp-request@technofile.org> with message _body_ ==== unsubscribe