sub map_func { state %indexes; state $idx; my $a_big_num = shift; return $indexes{$a_big_num} if exists $indexes{$a_big_num}; die "Ran out of slots!" if keys %indexes > 1000; return $indexes{$a_big_num}=$idx++; }