in reply to Matching wirth ordered array
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use utf8; use open 'OUT', ':encoding(UTF-8)', ':std'; my %dictionary = ( 'animal source food' => 'aliment d’origine animale', 'balanced diet' => 'régime alimentaire équilibré', 'food' => 'aliment', 'nutrition' => 'nutrition', 'nutrition assessment' => 'évaluation de l’état nutritionnel' ); my $text = 'nutrition and animal source food or nutrition assessment'; my $regex = join '|', map quotemeta, sort { length $b <=> length $a } keys %dictionary; while ($text =~ /($regex)/g) { say $dictionary{$1}; }
Output:
nutrition aliment d’origine animale évaluation de l’état nutritionnel
|
|---|