I was thinking RECNO, not a BTREE (right?), and you're right, I missed the point :) So the idea is neither relevant nor any good, just a curiosity of whether the following...
my @h ;
tie @h, "DB_File", $filename, O_RDWR|O_CREAT, 0666, $DB_REC
# starting with something like...
$h[512_000_000] = "orange";
would behave like presizing a real array which saves on overhead generated by growing and shrinking it. I just tried a bit of test code and some rather unscientific times of it shows it makes little difference and if it does, it's slightly against the pre-sizing.