use strict; use warnings; use utf8; use 5.010; use Unicode::Normalize qw/NFKD/; binmode STDOUT, ':encoding(UTF-8)'; sub frob { my $str = NFKD(shift); $str =~ s/\pM//g; $str =~ s/[^a-z-A-z0-9]/_/g; $str; } my $test = '&[]ÀÂÄàâäÇçÉÊÈËéêèëÏÌÎïìîÖÔÒöôòÜÛÙüûù?!;«»()" íóñÑáéóúÁÉÍÓÚ'; say frob $test; __END__ []AAAaaaCcEEEEeeeeIIIiiiOOOoooUUUuuu_________ionNaeouAEIOU