use strict; { local $,="\t"; print @{add_next_level(add_next_level([qw/1 2 3/], [qw/a b c/]),[qw/* _ +/])}; } sub add_next_level { my ($basic_array_ref, $add_array_ref) = @_; my @result; for my $basic (@$basic_array_ref) { for my $additional (@$add_array_ref) { push @result, "$basic$additional"; } } return \@result; }