#!/usr/bin/perl -w sub usage { die "Usage: renumfiles <-fake> pattern [files ...]\n"; } if($ARGV[0] =~ /^--?f(?:ake)?$/) { $fake = 1; shift; } $num = 1; if($ARGV[0] =~ /^\d+$/) { $num = $ARGV[0]; shift; } $pattern = $ARGV[0] || usage; usage if -f $pattern; shift; if(@ARGV >= 1000) { $places = 4; } elsif (@ARGV >= 100) { $places = 3; } else { $places = 2; } $pattern =~ s/\%d/%0${places}d/; if($pattern !~ /\%\d+d/) { $pattern = "${pattern}_\%0${places}d.jpg"; } @files = @ARGV; usage unless @files; for(@files) { my $new = sprintf($pattern, $num); warn "'$_' => '$new'\n"; rename($_, $new) unless $fake; $num++; }