C:\>perl -MO=Deparse,-p $,=42;for(34,0,-3,9,-11,11,-17,7,-5){$*.=pack'c'=>$,+=$_}for(reverse split//=>$* ){$%++?$ %%2?push@C,$_,$":push@c,$_,$":(push@C,$_,$")&&push@c,$"}$C[$#C]=$/;($#C >$#c)?($ c=\@C)&&($ C=\@c):($ c=\@c)&&($C=\@C);$%=$|;for(@$c){print$_^$$C[$%++]} __DATA__ ($, = 42); foreach $_ ((34, 0, (-3), 9, (-11), 11, (-17), 7, (-5))) { ($* .= pack('c', ($, += $_))); } foreach $_ (reverse(split(//, $*, 0))) { (($%++) ? (($% % 2) ? push(@C, $_, $") : push(@c, $_, $")) : (push(@C, $_, $") && push(@c, $"))); } ($C[$#C] = $/); (($#C > $#c) ? (($c = (\@C)) && ($C = (\@c))) : (($c = (\@c)) && ($C = (\@C)))); ($% = $|); foreach $_ (@$c) { print(($_ ^ $$C[$%++])); } __DATA__