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