Many thanks for your answer and the time you spent to take a look at the code.
I pasted quite a lot of code simply because Sourceforge (or Sourceforge(t) I should say) had, an outage in my area yesterday and I was not sure if people would get to the repo, being afraid that this will put people off for an answer.
In terms of the problem, I have located the issue in 'parsesubs'. However, I do like your simpler approach, which does populate the 'subblocks' array with everything, which is not really what I want. No (R)DBMS access is required either. So, on the XML::LibXML code example you posted, how can I modify the loop so I can obtain three scalars, each containing separately the XML string of each subblock? This is what my main problem boils down to. (I know I should have done my reading, but I must admit I am not an accomplished LibXML-er.)
Many thanks for any response!