in reply to XML parsing trouble with id tags

I believe that "id" is a special tag for XML::Simple. It causes the code that builds the data structure to build a hash instead of an array. So, in your case, that variable $progress is actually a hash reference, not an array reference.

This can be very useful, and you may want to see whether it helps you out by printing out the entire data structure.

If you find that you can't stand it, you can turn it off:

my $xml = XMLin($file, keyattr => []);