Simon Batistoni sent the following bits through the ether:

> I know most people here probably read Slashdot, but this was too sweet to
> pass up.

It's cute. Doing the 'x' -> 'pack+' substition by hand and then
running through perltidy (http://perltidy.sourceforge.net/, does a
pretty good job) gives :

while ( read +STDIN, $_, 2048 ) {
    $a = 29;
    $c = 142;
    if ( ( @a = unpack +"C*", $_ )[20] & 48 ) {
        $h   = 5;
        $_   = unpack +b24, join "",
          @b = map { pack +B8, unpack +b8, chr( $_ ^ $a[ --$h + 84 ] ) } @ARGV;
        s/...$/1$&/;
        $d = unpack +V, pack +b25, $_;
        $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 {
              $_ % 16
              or $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 +pack +"C*", @a;
}

Simple, huh? Leon
-- 
Leon Brocard.............................http://www.astray.com/
yapc::Europe............................http://yapc.org/Europe/

... He who reads many fortunes gets confused

Reply via email to