http://www.perlmonks.org?node_id=86969


in reply to sequencial file naming

One way is to get a list of the matching files in the directory, sorting them and adding to the digit. This example outputs last digit and the new filename to STDOUT to demonstrate:

(remember to use strict when programming)

$dir='path to directory'; opendir D, $dir or die "Cannot open directory $dir: $!\n"; while( defined (my $file = readdir(D)) ) { if ($file =~ /\.dat$/){ push(@files,$file); } } closedir D; @files = sort @files; @filename = split(/\./,$files[$#files]); print $filename[0],"\n"; $filename = ($filename[0] + 1) . '.dat'; print $filename,"\n";

Mick