my %temp = (); my %files = (); my ($zeroes, $nines) = (0,0); my $lastkey = 0; # lastfile contains number open (QS, $lastfile) or die "cant open $lastfile $!"; while () { $lastkey = $_; } close QS; # <> contains the list of files from a .sh while (<>) { chop; next if $_ !~ /\.txt$/; my $file = $indir.$_; $_ =~ s/elmo(\d*)\.txt$/$1/; $temp{$_} = [ $file, $_ ]; $nines = 1 if $_ =~ /^999/; $zeroes = 1 if $_ =~ /^000/; } for (keys %temp) { my $k = $_; if (($nines && $zeroes) || ($zeroes && $lastkey =~ /^99/)) { $k += 10000 if ($k =~ /^000/); $lastkey += 10000 if ($lastkey =~ /^00/ && $lastkey < 9999); } $files{$k} = [ @{ $temp{$_} }]; } for (sort {$a <=> $b} keys %files) { my $file = $files{$_}->[0]; my $numkey = $_; if ($numkey > $lastkey) { if (-e $file){ # &io_process_file($lda, $file, 'incstock', \&load_incstock, 1); $lastkey = $numkey; $lastkey += 10000 if (($nines && $zeroes) && $lastkey < 9000); } } } open (QS, ">$lastfile") or die "cant open $lastfile $!"; print QS $files{$lastkey}->[1]; close QS;