sub combine_rows { my ( $label, @arrays ) = @_; my @joined; for my $i ( 0 .. $#{$arrays[0]} ) { # assumes that all arrays are the same size push @joined, join( ';', $label, map { $arrays[$_][$i] } 0 .. $#arrays ); } return \@joined; }