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 -- Keith C. Ivey <kcivey@cpcug.org> Washington, DC ==== Want to unsubscribe from Fun With Perl? Well, if you insist... ==== Send email to <fwp-request@technofile.org> with message _body_ ==== unsubscribe