#!/usr/bin/perl use strict; use warnings; my @list1 = 1 .. 5; my @list2 = 1 .. 5; my @merge_list = ((0) x scalar @list1); # use smaller of 2 lists while (1) { my ($min, $idx); for (my $i = 0; $i < @merge_list; ++$i) { next if $merge_list[$i] > $#list2; my $sum = $list1[$i] + $list2[$merge_list[$i]]; ($min, $idx) = ($sum, $i) if ! defined $min || $sum < $min; } last if ! defined $min; print "$min\n"; $merge_list[$idx]++; }