Hi,
I´ve found the same trouble working with portuguese acents. I´ve concluded that, in general, usefull resources like \w and \W do not work well for utf8 characters. So, forget them and do the job "mannualy". It happens because Perl 5 has not yet serious UNICODE support, I guess.
May appear strange, but cleaning the strings from \s and \n\r, avoiding using them directly, has helped me. For example:
my reg1= /r\n/;#needed for UTF-8 cleaning
my $reg2 = /s/;#see http://unicode.org/reports/tr13/tr13-5.html
foreach (@words) {
unless ($_ eq "s+"|$_ eq "0"|$_ eq $reg1|$_ eq $reg2){ #last clean
+ing
...
}