use strict; use warnings; my $data1 = <; if (!defined $files[-1][1]) { close $files[-1][0]; pop @files; next; } chomp $files[-1][1]; } while (@files) { my $minRecIndex = 0; # Find the current minimum record for my $cmpRecIndex (0 .. $#files) { $minRecIndex = $cmpRecIndex if $files[$cmpRecIndex][1] < $files[$minRecIndex][1]; } print "$files[$minRecIndex][1]\n"; my $fh = $files[$minRecIndex][0]; $files[$minRecIndex][1] = <$fh>; if (defined $files[$minRecIndex][1]) { chomp $files[$minRecIndex][1]; } else { close $files[$minRecIndex][0]; splice @files, $minRecIndex, 1; } } #### 1 2 3 4 7 10 11 20 22 24 29 30 90