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 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'..'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';; Dup after 142376 strings at (eval 13) line 1, line 5. Dup after 551424 strings at (eval 13) line 1, line 5. Dup after 551425 strings at (eval 13) line 1, line 5. Dup after 551426 strings at (eval 13) line 1, line 5. Dup after 551427 strings at (eval 13) line 1, line 5. Dup after 551428 strings at (eval 13) line 1, line 5. Dup after 551429 strings at (eval 13) line 1, line 5. Dup after 551430 strings at (eval 13) line 1, line 5. Dup after 551431 strings at (eval 13) line 1, line 5. Dup after 551684 strings at (eval 13) line 1, line 5. Dup after 551685 strings at (eval 13) line 1, line 5. Dup after 551686 strings at (eval 13) line 1, line 5. Dup after 551687 strings at (eval 13) line 1, line 5. Dup after 587768 strings at (eval 13) line 1, line 5. Dup after 587769 strings at (eval 13) line 1, line 5. Dup after 587770 strings at (eval 13) line 1, line 5. Dup after 587771 strings at (eval 13) line 1, line 5. Dup after 832410 strings at (eval 13) line 1, line 5. Dup after 832411 strings at (eval 13) line 1, line 5. Dup after 832472 strings at (eval 13) line 1, line 5. Dup after 832473 strings at (eval 13) line 1, line 5. Dup after 833434 strings at (eval 13) line 1, line 5. Dup after 833435 strings at (eval 13) line 1, line 5. Dup after 833502 strings at (eval 13) line 1, line 5. Dup after 833503 strings at (eval 13) line 1, line 5. Dup after 903490 strings at (eval 13) line 1, line 5. Dup after 903491 strings at (eval 13) line 1, line 5. Dup after 903494 strings at (eval 13) line 1, line 5. Dup after 903495 strings at (eval 13) line 1, line 5. Dup after 903498 strings at (eval 13) line 1, line 5. Dup after 903501 strings at (eval 13) line 1, line 5. Dup after 903516 strings at (eval 13) line 1, line 5. Dup after 903517 strings at (eval 13) line 1, line 5. Dup after 994476 strings at (eval 13) line 1, line 5. Dup after 994477 strings at (eval 13) line 1, line 5. Dup after 994788 strings at (eval 13) line 1, line 5. Dup after 994789 strings at (eval 13) line 1, line 5. Dup after 1019528 strings at (eval 13) line 1, line 5. Dup after 1019529 strings at (eval 13) line 1, line 5. Dup after 1019532 strings at (eval 13) line 1, line 5. Dup after 1019533 strings at (eval 13) line 1, line 5. Dup after 1019536 strings at (eval 13) line 1, line 5. Dup after 1019537 strings at (eval 13) line 1, line 5. Dup after 1019560 strings at (eval 13) line 1, line 5. Dup after 1019565 strings at (eval 13) line 1, line 5. Dup after 1019840 strings at (eval 13) line 1, line 5. Dup after 1019841 strings at (eval 13) line 1, line 5. Dup after 1019844 strings at (eval 13) line 1, line 5. Dup after 1019845 strings at (eval 13) line 1, line 5. Dup after 1019848 strings at (eval 13) line 1, line 5. Dup after 1019849 strings at (eval 13) line 1, line 5. Dup after 1019872 strings at (eval 13) line 1, line 5. Dup after 1019877 strings at (eval 13) line 1, line 5.