The items in your array
are in insertion order, so what remains is each individual hash. In your example above, you have a list with one element: a standard hashref. Since you can't "tie" an anonymous reference like this, you would need to use the object-oriented abilities of
Tie::IxHash instead:
use Tie::IxHash;
push @data, Tie::IxHash->new( yo => mama, bliz => at );
push @data, Tie::IxHash->new( one => two, three => four);
print join(", ", keys %{$data[1]}); # one, three
You can also create separate hashes, tied to
Tie::IxHash (per the man page) and push references to each of those tied variables onto
@data.