#!/usr/local/bin/perl

$exp = "";

sub usage {
    die "rename.pl [-notreally] [-debug] [-verbose] [-e expression] files\n";
}

&usage if !@ARGV;

while ($_ = shift(@ARGV)) {
    if (/^-[nd]/) {
	$debug = 1;
    } elsif (/^-v/) {
	$verbose = 1;
    } elsif (/^-e/) {
	$exp = shift(@ARGV);
    } elsif (/^-/) {
	&usage;
    } else {
	&usage if !$exp;
	$old = $_;
	eval $exp;
	die "Error evaluating \"$exp\": $@\n" if $@;
	if ($old ne $_) {
	    print "rename(\"$old\", \"$_\");\n" if $verbose;
	    if ($debug) {
		print "mv $old $_\n";
	    } else {
		rename($old, $_) ||
		    warn "failure renaming \"$old\" to \"$_\": $!\n";
	    }
	} elsif ($debug) {
	    print "no change: $_\n";
	}
    }
}
