# Bit quick-and-dirty test-code, but maybe helpful for someone # Change a string to uppercase or lower case INCLUDING # extended ASCII # Usage: CaserSpec("String", 1/0) # Uppercase=1/Lowercase=0 sub CaserSpec { my %replace; my $string = @_[0]; my %Lreplace = ( 'Á' => 'á', 'À' => 'à', 'Ç' => 'ç', 'É' => 'é', 'È' => 'è', 'Ë' => 'ë', 'Í' => 'í', 'Ì' => 'ì', 'Ï' => 'ï', 'Ñ' => 'ñ', 'Ó' => 'ó', 'Ò' => 'ò', 'Ö' => 'ö', 'Ú' => 'ú', 'Ù' => 'ù', 'Ü' => 'ü'); my %Ureplace = ( 'á' => 'Á', 'à' => 'À', 'ç' => 'Ç', 'é' => 'É', 'è' => 'È', 'ë' => 'Ë', 'í' => 'Í', 'ì' => 'Ì', 'ï' => 'Ï', 'ñ' => 'Ñ', 'ó' => 'Ó', 'ò' => 'Ò', 'ö' => 'Ö', 'ú' => 'Ú', 'ù' => 'Ù', 'ü' => 'Ü'); if(!@_[1]){ $string = join('',map {$_ = $Lreplace{$_}||lc($_)} split(//,$string)); } else { $string = join('',map {$_ = $Ureplace{$_}||uc($_)} split(//,$string)); } return $string; }