in reply to Hash of Hashes not filling - only using last line of file

Because that's exactly what you're asking it to do; every time through the while(), you're setting %IACISBN_ENUM to a hash with a single key.

You want to add keys to it each time, not re-initialize it. Try something more like:

$IACISBN_ENUM{$IacIsbn} = { [...] };