my @files = glob("./*"); for my $filename (@files) { (my $newname = $filename ) =~ s/[^A-Za-z0-9\.]/_/; if ( -e $newname ) { warn "$newname already exists, skipping rename on $filename\n"; } else { rename $filename, $newname; } } #### perl -pi.bak -e 's/[^\w\.\t \n]//'