Replace blanks, ä, Ä, ö, etc. in file names

The following script renames the files of the current directory. All white space characters are replaced by '_'.

#!/usr/bin/perl -w

use strict;

sub yesno { print "$_[0] y/[n]: ";return (<STDIN> =~ /^(y|Y)$/);}
#
# read the file names of the current directory
#
opendir( D, ".");
my @files = readdir(D);
closedir( D);

foreach my $fname (@files)
{
    #
    # remove leading/trailing white space
    #
    $fname =~ s/^\s*(.*?)\s*$/$1/; 
    #
    # see, if the file name still contains white space
    #
    next if( $fname !~ /\s/ &&
	     $fname !~ /[\200-\377]/);
    my $fname_new = $fname;
    #
    # replace any white space character by '_', Umlaute
    #
    $fname_new =~ s/\s/_/g;
    $fname_new =~ s/\344/ae/g;
    $fname_new =~ s/\304/Ae/g;
    $fname_new =~ s/\366/oe/g;
    $fname_new =~ s/\326/Oe/g;
    $fname_new =~ s/\374/ue/g;
    $fname_new =~ s/\334/Ue/g;
    $fname_new =~ s/\337/sz/g;
    if( yesno( " rename \"$fname\" to $fname_new"))
    {
	system( "mv \"$fname\" $fname_new"); 
    }
}
exit 0;