I am not able to reproduce your results. When I run your script it outputs in the correct order. When I change the case of the names the output changes as expected.
my %meta = ( "Author"=>"J K Rolling", "title","Harry Potter and the Philosopher's Stone" ); Sorts: Author, title <meta content="J K Rolling" name="Author" /> <meta content="Harry Potter and the Philosopher's Stone" name="title" +/> my %meta = ( "author"=>"J K Rolling", "Title","Harry Potter and the Philosopher's Stone" ); Sorts: Title, author <meta content="Harry Potter and the Philosopher's Stone" name="Title" +/> <meta content="J K Rolling" name="author" />
If I use an Array of Arrays to ensure the correct order I also get expected results:
my @meta = ( ["Author"=>"J K Rolling"], ["title","Harry Potter and the Philosopher's Stone"] ); Sorts: Author, title <meta content="J K Rolling" name="Author" /> <meta content="Harry Potter and the Philosopher's Stone" name="title" +/> my @meta = ( ["author"=>"J K Rolling"], ["Title","Harry Potter and the Philosopher's Stone"] ); Sorts: author, Title <meta content="J K Rolling" name="author" /> <meta content="Harry Potter and the Philosopher's Stone" name="Title" +/>
The docs state that push_content "adds the specified items to the end of the content list of the element". Nothing about sorting, and in your case the element is the head. There is also an unshift_content.

I used this loop for the AoA:

for my $m ( @meta ) { my $m_el = HTML::Element->new('meta'); $m_el->attr('name',$m->[0]); $m_el->attr('content',$m->[1]); $head->push_content($m_el); }

In reply to Re: Ordering meta tags with HTML::Element by tangent
in thread Ordering meta tags with HTML::Element by HeadScratcher

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.