use List::Util qw( min max ); my @numbers; @numbers = grep { /^\d+$/ } grep { -f } glob '*'; my $max = max@numbers; my $previous = ($max)-1; foreach (@numbers) { if (-z "$max") { if (-z "$previous") { print "previous conf: $previous \n"; print "Latest conf: $max \n"; printf "Ready for conf %d \n",++$max; } } }