I can't seem to get XML:Simple to create a hash tree the same way for different data. If there are two entries in my tree then I get named hashes of named hashes. If the XML only has one entry then the structure changes. How do I force the same structure all the time?

That's pretty common in XML::Simple usage and the reason why there's ForceArray (see this section).

XMLin($xml, ForceArray => [ qw(state project) ] );
The names in ForceArray stand for those tags which should always be transformed into array refs, no matter if only one appears. It is all explained in the fine documentation, including this FAQ.

In reply to Re: XML::Simple hash tree structure not consistent by ferreira
in thread XML::Simple hash tree structure not consistent by riddlemethisbatman

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.