##### PACK THE POSTING LIST... my $str = ''; for my $doc_id( 0 .. 30000 ) { print "Doc id:\t",$doc_id,"\n"; $str .= (pack "I", $doc_id) | $SET_MSB; for my $pos ( 0 .. 2 ) { $str .= (pack "I", $pos) & $UNSET_MSB; } } print "pack time \t",time()-$Aa,"\n"; # UNPACK THE POSTING LIST my $Aaa=time(); my $dat = {}; my $doc_id = undef; for( my $i=0;$i $MSB ) { $doc_id = unpack "I", ((pack "I", $int) & $UNSET_MSB); } else { push @{$dat->{$doc_id}}, $int; } } print "unpack time \t",time()-$Aaa,"\n";