#!/bin/bash for i in {1..15}; do perl -Mstrict -wle' use strict; use warnings; my %addr; my $count = 0; my $tries = 2**$ARGV[0]; for my $try (1..$tries) { my %h; for (reverse 1..1000) { $h{$_} = { value => $_}; $count++; } $addr{$_}++ for values %h; } my $reused = scalar grep $addr{$_}>1, keys %addr; my $addrs = scalar keys %addr; print "Address of reference reused $reused times, all addresses $addrs, in $count tries";' $i done #### Address of reference reused 1 times, all addresses 1999, in 2000 tries Address of reference reused 1001 times, all addresses 2999, in 4000 tries Address of reference reused 2995 times, all addresses 3007, in 8000 tries Address of reference reused 3011 times, all addresses 3023, in 16000 tries Address of reference reused 3043 times, all addresses 3055, in 32000 tries Address of reference reused 3107 times, all addresses 3119, in 64000 tries Address of reference reused 3235 times, all addresses 3247, in 128000 tries Address of reference reused 3491 times, all addresses 3503, in 256000 tries Address of reference reused 4003 times, all addresses 4015, in 512000 tries Address of reference reused 5027 times, all addresses 5039, in 1024000 tries Address of reference reused 7075 times, all addresses 7087, in 2048000 tries Address of reference reused 11171 times, all addresses 11183, in 4096000 tries Address of reference reused 19363 times, all addresses 19375, in 8192000 tries Address of reference reused 35747 times, all addresses 35759, in 16384000 tries Address of reference reused 68515 times, all addresses 68527, in 32768000 tries