my @foo = ([qw(one two)], [qw(three four)], [qw(five six)]); # use List::Util 'reduce'; # oops: my $str = reduce {"[$a,$b]"} map { reduce {"[$a,$b]"} @$_ } @foo; my $str = sprintf "[%s]", join ',', map { sprintf '["%s"]', join '","', @$_} @foo; print "--- $str ---\n";