use Data::Dumper; my @seg1 = ("one","two","three"); my @seg2 = ("four","five"); #create references my $seg1 = \@seg1; my $seg2 = \@seg2; my $seg3 = \@seg3; my $seg4 = \@seg4; my $seg5 = \@seg5; my @pairs = get_pairs($seg1,$seg2,$seg3,$seg4,$seg5); print Dumper \@pairs; sub get_pairs { my @seg_pairs = @_; my @pairs = map { local $arr_frst_scalar = $_; map { ["$arr_frst_scalar->[$_-1] $arr_frst_scalar->[$_]"] ; }1..scalar(@$_) }@seg_pairs; return @pairs; } __END__ $VAR1 = [ [ 'one two' ], [ 'two three' ], [ 'three' ], [ 'four five' ], [ 'five' ] ];