in reply to Push to array as part of Struct

This is very confusing code, I have trouble to find a connection between the three snippets you posted.

Probably try an SSCCE instead?

Edit

Please try the ->@* syntax to push to deeply nested elements

Debugger demo

DB<4> push $hash{key}[4]{array}->@* , 1..3 DB<5> x \%hash 0 HASH(0xb400007bea0f2180) 'key' => ARRAY(0xb400007bea0f22a0) 0 empty slot 1 empty slot 2 empty slot 3 empty slot 4 HASH(0xb400007bea0f22d0) 'array' => ARRAY(0xb400007bea0f1d08) 0 1 1 2 2 3 DB<6>

Cheers Rolf
(addicted to the Perl Programming Language :)
see Wikisyntax for the Monastery