in reply to Removing empty elements from multi-dimensional array

I guess this is more or less what you're looking for (demonstrated under the Perl debugger):
DB<14> @array = (['X1','X2','X3','X4' ], ,['','key', ''], ['key', '' +, '']); DB<15> x \@array 0 ARRAY(0x600501580) 0 ARRAY(0x6005d2818) 0 'X1' 1 'X2' 2 'X3' 3 'X4' 1 ARRAY(0x6005015f8) 0 '' 1 'key' 2 '' 2 ARRAY(0x6004fa8c0) 0 'key' 1 '' 2 '' DB<16> for my $subarrayref ( @array ) { $subarrayref = [ grep leng +th $_, @$subarrayref] } DB<17> x \@array 0 ARRAY(0x600501580) 0 ARRAY(0x6005d2d70) 0 'X1' 1 'X2' 2 'X3' 3 'X4' 1 ARRAY(0x600500e60) 0 'key' 2 ARRAY(0x600635c28) 0 'key'