1: # Bit quick-and-dirty test-code, but maybe helpful for someone
2: # Change a string to uppercase or lower case INCLUDING
3: # extended ASCII
4: # Usage: CaserSpec("String", 1/0) # Uppercase=1/Lowercase=0
5:
6: sub CaserSpec {
7: my %replace;
8: my $string = @_[0];
9: my %Lreplace = (
10: 'Á' => 'á',
11: 'À' => 'à',
12: 'Ç' => 'ç',
13: 'É' => 'é',
14: 'È' => 'è',
15: 'Ë' => 'ë',
16: 'Í' => 'í',
17: 'Ì' => 'ì',
18: 'Ï' => 'ï',
19: 'Ñ' => 'ñ',
20: 'Ó' => 'ó',
21: 'Ò' => 'ò',
22: 'Ö' => 'ö',
23: 'Ú' => 'ú',
24: 'Ù' => 'ù',
25: 'Ü' => 'ü');
26: my %Ureplace = (
27: 'á' => 'Á',
28: 'à' => 'À',
29: 'ç' => 'Ç',
30: 'é' => 'É',
31: 'è' => 'È',
32: 'ë' => 'Ë',
33: 'í' => 'Í',
34: 'ì' => 'Ì',
35: 'ï' => 'Ï',
36: 'ñ' => 'Ñ',
37: 'ó' => 'Ó',
38: 'ò' => 'Ò',
39: 'ö' => 'Ö',
40: 'ú' => 'Ú',
41: 'ù' => 'Ù',
42: 'ü' => 'Ü');
43:
44: if(!@_[1]){
45: $string = join('',map {$_ = $Lreplace{$_}||lc($_)} split(//,$string));
46: } else {
47: $string = join('',map {$_ = $Ureplace{$_}||uc($_)} split(//,$string));
48: }
49: return $string;
50: }