Thank you, and also Dakkar, plus all the other kind people who posted,
The solution is indeed to use "Unicode::Collate" together with a file called "allkeys.txt". No locales needed.
Just put "use unicode::collate" and add the lines:
my %tailoring;
my $Collator;
$Collator = Unicode::Collate->new(%tailoring);
@char = $Collator->sort(@char);
and sorting works "automagically"; French is now totally correct; for the other character sets such as Greek it looks logical but I'll get our translators to check the order for me just in case there are still some quirks.
However, Swedish and Finnish no longer sort correctly, because in those languages Ä, Ö etc are considered to come after "Z" so it looks like I'm going to have to do an if/else with "normal" sort and "collate". But who cares, I'm a huge step forward from where I was this morning.
Thanks a lot guys,
Anne