use String::CRC32;; @v = ( chr(0) ) x 256; $_ x= 2*1024*1024 for @v;; sub testAndSet{ my( $hi, $lo ) = ( $_[0] >> 24, $_[0] & 0x00ffffff ); return 1 if vec( $v[$hi], $lo, 1 ); vec( $v[$hi], $lo, 1 )=1; return; };; $n=0; testAndSet( crc32( $_, ++$n ) ) and warn "Dup after $n strings" for 'aaaaa'..'zzzzz';; Dup after 18026 strings at (eval 12) line 1, line 4. Dup after 18027 strings at (eval 12) line 1, line 4. Dup after 18042 strings at (eval 12) line 1, line 4. Dup after 18043 strings at (eval 12) line 1, line 4. Dup after 18728 strings at (eval 12) line 1, line 4. Dup after 18729 strings at (eval 12) line 1, line 4. Dup after 18744 strings at (eval 12) line 1, line 4. Dup after 18745 strings at (eval 12) line 1, line 4. Dup after 19378 strings at (eval 12) line 1, line 4. Dup after 19379 strings at (eval 12) line 1, line 4. Dup after 116559 strings at (eval 12) line 1, line 4. Dup after 116574 strings at (eval 12) line 1, line 4. Dup after 117261 strings at (eval 12) line 1, line 4. Dup after 117276 strings at (eval 12) line 1, line 4. Dup after 126026 strings at (eval 12) line 1, line 4. Dup after 126027 strings at (eval 12) line 1, line 4. Dup after 126030 strings at (eval 12) line 1, line 4. Dup after 126031 strings at (eval 12) line 1, line 4. Dup after 126042 strings at (eval 12) line 1, line 4. Dup after 126043 strings at (eval 12) line 1, line 4. Dup after 126046 strings at (eval 12) line 1, line 4. Dup after 126047 strings at (eval 12) line 1, line 4. Dup after 126728 strings at (eval 12) line 1, line 4. Dup after 126729 strings at (eval 12) line 1, line 4. Dup after 126732 strings at (eval 12) line 1, line 4. Dup after 126733 strings at (eval 12) line 1, line 4. Dup after 126744 strings at (eval 12) line 1, line 4. Dup after 126745 strings at (eval 12) line 1, line 4. Dup after 126748 strings at (eval 12) line 1, line 4. Dup after 126749 strings at (eval 12) line 1, line 4. Dup after 176385 strings at (eval 12) line 1, line 4. Dup after 176388 strings at (eval 12) line 1, line 4. Dup after 176389 strings at (eval 12) line 1, line 4. Dup after 176400 strings at (eval 12) line 1, line 4. Dup after 176404 strings at (eval 12) line 1, line 4. Dup after 176405 strings at (eval 12) line 1, line 4. Dup after 250001 strings at (eval 12) line 1, line 4. Dup after 250512 strings at (eval 12) line 1, line 4. Dup after 250513 strings at (eval 12) line 1, line 4. Dup after 250516 strings at (eval 12) line 1, line 4.