in reply to Merge 2 2d arrays

Well, there's the simple answer of just use push (push @{$VAR1}, @{$VAR2}), but that's ignoring the fact that's only a shallow copy of the constituent arrayrefs and that you'll be able to diddle (say) $VAR2->[1]->[1] and affect the value you see as $VAR1->[2]->[1]. If that's an issue you'd want to iterate over @{ $VAR2 } and push copies instead (push @{$VAR1}, [ @{ $_ } ] for @{ $VAR2 }). Or use something like Storable's dclone routine to do a deep clone of $VAR2 and use the first push solution.

The cake is a lie.
The cake is a lie.
The cake is a lie.