#!/usr/bin/perl -w # use utf8; use 5.030; # use feature "unicode_strings"; no warnings "experimental"; my @problematic = qw (á é í ó ú ü Á É Í Ó Ú Ü); for my $letra (@problematic){ print "-> ". $letra. ", $letra = " . letra_sin_acentos($letra), " <--- \n"; } exit 0; sub letra_sin_acentos { my $letter = $_[0]; return $letter if ($letter =~ /[0-9a-zA-Z]/); given ($letter){ when ($_ eq "á") { return "a"; } when ($_ eq "é") { return "e"; } when ($_ eq "í") { return "i"; } when ($_ eq "ó"){ return "o"; } when ($_ eq "ú" || $_ eq "ü") { return "u"; } when ($_ eq "Á"){ return "A"; } when ($_ eq "É"){ return "E"; } when ($_ eq "Í"){ return "I"; } when ($_ eq "Ó"){ return "O"; } when ($_ eq "Ü" || $_ eq "Ú"){ return "U"; } default { return $letter; } } }