in reply to symbolic ref error

ick, why not assign variable names first and see what's going on?
if ($_[1] == "1") {push @{{$_[2]}{$_[0]}{$_[1]}}, $_[3];}
to
my ( $w, $x, $y, $z ) = @_; if ( $x == 1 ) { # or $x eq "1" push @{{$y}{$w}{$x}}, $z; }
Wait... what does that mean? @{{$y}{$w}{$x}}? Is that supposed to be a HoHoHoA? If so, try
@{$y->{$w}->{$x}}