#!/usr/bin/perl -w use strict; use Algorithm::Loops qw( NestedLoops MapCarE ); my @data = ( [ [1, "Darth Vader"], [3, "Luke Skywalker"], [5, "Obi Wan Kenobi"], ],[ [0, "Lighsabre "], [5, "Blaster"], [9, "Rocket launcher"], ],[ [10, "Dagobah"], [14, "Kashyyyk"], ], ); my @joined= NestedLoops( \@data, sub { my( $dig, $txt )= MapCarE { [ @_ ] } @_; [ join('',@$dig), join(', ',@$txt) ]; }, ); for( @joined ) { print join("\t",@$_), $/; }