use Data::Dumper; my @seg1 = ("fkgskfgskfgksf","kshflkshfkls"); my @seg2 = ("kgskfgskf","sjfgsjfgjsgfksf"); #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 = @_; map {for my $i (1..scalar(@$_)){ push (@pairs , "$_->[$i-1] $_->[$i]\n");} }@seg_pairs; return @pairs; }