#!/usr/bin/env perl use strict; use warnings; my @files = ( '000001.OrderID.html', '000002.OrderID.cgi', '000004.OrderID.js', '000005.OrderID.txt', '000006.OrderID.cgi', 'OrderID.master' ); my $i = 1; for my $infile (sort grep /^\d{6}\./, @files) { my $repl = sprintf ("%6.6i", $i++); (my $outfile = $infile) =~ s/^\d{6}/$repl/; rename $infile, $outfile; }