in reply to Array size issue

You are printing all the lines each time. It means the output look like this:
line1 line1 line2 line1 line2 line3
These are printed as three groups (containing 1, 2 and 3 lines). The last group has 3 lines, because you push when @matches has 2 elements.
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ