sub deaccent {
my $phrase = shift;
return $phrase unless ( $phrase =~ y/\xC0-\xFF// ); #short circuit if no upper chars
# translterate what we can (for speed)
$phrase =~ tr/ÀÁÂÃÄÅàáâãäåÇçÈÉÊËèéêëÌÍÎÏìíîïÒÓÔÕÖØòóôõöøÑñÙÚÛÜùúûüÝÿý/AAAAAAaaaaaaCcEEEEeeeeIIIIiiiiOOOOOOooooooNnUUUUuuuuYyy/;
# and substitute the rest
my %trans = qw(Æ AE æ ae Þ TH þ th Ð TH ð th ß ss);
$phrase =~ s/([ÆæÞþÐðß])/$trans{$1}/g;
return $phrase;
}
####
foreach my $row_db ( sort { deaccent($a) cmp deaccent($b) } @$selected ) {
####
foreach my $row_db ( sort { deaccent($a->[1]) cmp deaccent($b->[1]) } @$selected ) {
my ($ID, $column1, $column2) = @$row_db;
print "$column1\n";
}
####
foreach my $row_db (map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, deaccent($_)] } @$selected ) {
####
foreach my $row_db (map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, deaccent($_->[1])] } @$selected ) {
my ($ID, $column1, $column2) = @$row_db;
print "$column1\n";
}