#!/usr/bin/perl use strict; use warnings; use File::DosGlob; my @ARGV = map { my @g = File::DosGlob::glob($_) if /[*?]/; @g ? @g : $_; } @ARGV; my $op = shift or die "Usage: rename expr [files]\n"; chomp( @ARGV = ) unless @ARGV; for (@ARGV) { my $was = $_; eval $op; die $@ if $@; rename( $was, $_ ) unless $was eq $_ }