would be the same at that moment. Although
That's actuallay what I meant: pushing the hashref onto the array (as in snippet 1) lets you change the "data" of the array by changing the hash referenced.
While pushing the hash itself onto the array (as in snippet 2) takes a copy of the content of the hash and is afterwards independant of the hash.