#!/usr/bin/perl # https://perlmonks.org/?node_id=1222668 use strict; use warnings; sub flatten { map ref($_) ? flatten(@$_) : $_, @_ } my @groups = [ [ 23 ], [ 22 ] ]; # note, single item array :) my $perms = join ',', flatten(@groups); print "$perms\n"; # more complex example @groups = ( [ 20, 21, [22, 23], 24], [ [ 25 ], [ [ [ 26 ] ] ] ], 27 ); $perms = join ',', flatten(@groups); print "$perms\n";