$_ = [ [ [ [ {}, [] ], { 73, '01110111', 1000, '11100101' }, [ [] ] ], { 1, '01111110', 72, '00011010', 64, '011001000011111001111010', 8, '00000100', 9, '0101010100010000000111111010001010100000000010100011000001000100101010100', 65, '011100001001010100000001' }, [ [] ] ] ]; (%_) = %{ ${ ${ $_; }[0]; }[1]; }; #### undef $_; %_ = ( 1 => '01111110', # '~' 72 => '00011010', # 'X' 64 => '011001000011111001111010', # '&|^' # 012345678901234567890123 8 => '00000100', # ' ' 9 => '0101010100010000000111111010001010100000000010100011000001000100101010100', #0123456789012345678901234567890123456789012345678901234567890123456789012 # 1 2 3 4 5 6 7 65 => '011100001001010100000001' # 012345678901234567890123 ); #### $s = eval { do { $O = 0, $C = 0, $t = 'This is my 100th PM post'; # 012345678901234567890123 sub { $O++, $C = @_ ? $C : eval # { do { my $k = pack( 'b*', vec( pack( 'b*', $_{64} ), $O - 1, 1 ) ? $_{1} : $_{8} ) . $C . pack( 'c', vec( pack( 'b*', $_{64} ), ( $O - 1 ) % 3, 8 ) ) . pack( 'b*', vec( pack( 'b*', $_{64} ), $O - 1, 1 ) ? $_{8} : $_{1} ) . vec( $t, $O - 1, 8 ); # print " $k"; eval $k; } } } } }; #### $o = pack( 'b*', $_{9} ); foreach $_ ( 0 .. unpack( '%b*', $o ) - 2 ) { # 16 bit checksum = 25, - 2 = 23 #### $c = $_ - ( ( $_ - $_ % 4 ) / 4 + ( $_ % 4 ? 1 : 0 ) ); # print $c; # 0 0 1 2 3 3 4 5 6 6 7 8 9 9 10 11 12 12 13 14 15 15 16 17 $i = vec( $o, $c, 4 ) + ( vec( $o, $c + 1, 4 ) << 4 ) >> 4 - $_ % 4 - 4 * ( $_ % 4 ? 0 : 1 ); # >> 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 0 3 2 1 # print $i; # 170 21 34 4 128 16 62 47 69 8 21 2 0 0 20 98 12 1 8 17 82 10 21 2 # print $i % 16; # == vec( pack( 'C', $i ), 0, 4 ) # 10 5 2 4 0 0 14 15 5 8 5 2 0 0 4 2 12 1 8 1 2 10 5 2 # 0101 0100 0000 0111 1010 1010 0000 0010 0011 0001 0100 1010 # 1010 0010 0000 1111 0001 0100 0000 0100 1000 1000 0101 0100 # J u r t n o u h e r P d r l a h a b j e r # * * * * * * * #### $i += $i % 2 ? -1 : 1 # $i ^= 1 if ( $_ + 1 ) % 12 and not(( $_ + 1 ) % 3) or $_ + 1 == 22; # print $i; # 170 21 35 4 128 17 62 47 68 8 21 2 0 0 21 98 12 0 8 17 83 11 21 2 # print $i % 16; # 10 5 3 4 0 1 14 15 4 8 5 2 0 0 5 2 12 0 8 1 3 11 5 2 # J u s t a n o t h e r P e r l h a c k e r #### $T = vec( pack( 'C', $i ), 0, 4 ) + vec( pack( 'b*', $_{65} ), $_, 1 ) * 16 + 32; # print $T; # 42 53 51 52 32 33 46 47 52 40 37 50 32 48 37 50 44 32 40 33 35 43 37 50 # 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 1 # J u s t a n o t h e r P e r l h a c k e r # * 1 2 3 4 5 6 7 8 9 10 11 12 * 1 2 3 4 5 6 7 8 9 10 #### print pack( 'c', ( $T += $T == 32 ? 0 : 64 ) -= $_ % 13 == 0 ? 32 : 0 ); #### # &$s; # independent of rest of loop, unrolled } # print ' ', &$s for 0..23; # 00 14294967295 2105 38 44294967263 573 68 74294967263 877 # 94 104294967291 1153 120 134294967295 14116 1520 164294967263 17112 # 1813 194294967282 20125 2116 224294967295 23116 #### print pack( 'c', &$s(1) ^ unpack( 'c', pack( 'b*', $_{72} ) ) );