Il ne le sait pas, il met donc toutes les lignes de B dans %index avec une valeur de 0. Un raffinement serait donc de tester avant insertion si la ligne était déjà là :

open $fh, '<', 'file2' or...