in reply to A Hash is a Hash (of course, of course)

nor is there an easy way to tell it to print them in a specific order

There certainly is. Your outer data structure is an array, which holds a bunch of hashrefs. The key/value pairs in the hashrefs are unordered, but the array holding hashrefs maintains order. Whichever way you put them in will be the same way they come out. The same goes with your list of versions under each release. This is an array full of hashrefs. You can prove it to yourself with some code like the following:

my @releases = ( { number => "one" }, { number => "two" }, { number => "three" }, ); print $_->{number}, "\n" for @releases;