#! perl use Modern::Perl; use Data::Dump; my @array1 = ( undef, undef, 'abcd', 'efgh', undef, undef, 'jklm', 'nopq', undef, undef, ); my @array2 = split /\0\0/, join('', map { $_ // "\0" } @array1); @array2 = @array2[1 .. $#array2] unless $array2[0]; dd @array1; dd @array2; #### 21:38 >perl 508_SoPW.pl ( undef, undef, "abcd", "efgh", undef, undef, "jklm", "nopq", undef, undef, ) ("abcdefgh", "jklmnopq") 21:38 > #### map { $_ // "\0" } @array1 #### map { $_ || "\0" } @array1 #### map { $_ eq '' ? "\0" : $_ } @array1