# 1 # collapse printing into the \$p assignment @t=("12","34","56","7 ","89",":h","er",";k",">7,1; \$p=(\$x&240)==48?\$x&15:-1+print chr\$x; \$n<<=1; }until(\$i==91); # 2 # Collapse the \$x assignment into the \$p assignment @t=("12","34","56","7 ","89",":h","er",";k",">7,1)&240)==48?\$x&15:-1+print chr\$x; \$n<<=1; }until(\$i==91); #3 # Collapse the \$n assignment into the \$x assignment @t=("12","34","56","7 ","89",":h","er",";k",">7,1)&240)==48?\$x&15:-1+print chr\$x;\$n<<=1; }until(\$i==91); #4 # Remove @t and replace it with a constant list @m=split/ */,"\x00\x50\xA5\xd2\xc5\xbb\x96\xef\x06\xbc\x8e\xe0"; do{ \$p=((\$x=ord substr("12","34","56","7 ","89",":h","er",";k",">7,1)&240)==48?\$x&15:-1+print chr\$x;\$n<<=1; }until(\$i==91); #5 # condense the previous @t, removing quotes to save space @m=split/ */,"\x00\x50\xA5\xd2\xc5\xbb\x96\xef\x06\xbc\x8e\xe0"; do{ \$p=((\$x=ord substr+(split/,/,'12,34,56,7 ,89,:h,er,;k,>7,1)&240)==48? \$x&15:-1+print chr\$x;\$n<<=1; }until(\$i==91); #6 # Remove @m, replacing it with a constant list # This requires a smaller variable for the 'shift' effect... do{ \$p=((\$x=ord substr+(split/,/,'12,34,56,7 ,89,:h,er,;k,>7,1)&240)==48?\$x&15:-1+print chr\$x;\$n<<=1; }until(\$i==91); #7 # Change all the variables to 'strict compliant' ones... # Remove extra semi-colons and parentheses... do{\$a=((\$_=ord substr+(split/,/,'12,34,56,7 ,89,:h,er,;k,>7,1)&240)==48?\$_&15:-1+print chr;\$b<<=1}until\$;==91 #8 (final version) # Split up the previous @m for allignment issues do{\$a=((\$_=ord substr+(split/,/,'12,34,56,7 ,89,:h,er,;k,>7,1)&240)==48?\$_&15:-1+print chr;\$b<<=1}until\$;==91