$ perl -e '%x = { a => 1, b => 2 }'
$
####
$ perl -e 'use warnings; %x = { a => 1, b => 2 }'
Name "main::x" used only once: possible typo at -e line 1.
Reference found where even-sized list expected at -e line 1.
$
##
##
$ perl -e 'use strict; %x = { a => 1, b => 2 }'
Global symbol "%x" requires explicit package name (did you forget to declare "my %x"?) at -e line 1.
Execution of -e aborted due to compilation errors.
$
##
##
use strict;
use warnings;
##
##
#!/usr/bin/env perl
use strict;
use warnings;
my %all_voices = (
'Microsoft Hedda Desktop - German' => 3,
'Microsoft Haruka Desktop - Japanese' => 4,
'Microsoft Zira Desktop - English (United States)' => 0,
'Microsoft Hazel Desktop - English (Great Britain)' => 1,
'Microsoft David Desktop - English (United States)' => 2,
'Microsoft Huihui Desktop - Chinese (Simplified)' => 5
);
for my $language (qw{German Japanese French English Chinese}) {
my @available_voices = grep /^[^-]+-\s+$language/, keys %all_voices;
if (@available_voices) {
my $first_voice = (
sort {
$all_voices{$a} <=> $all_voices{$b}
} @available_voices
)[0];
printf "%8s : [%d] %s\n",
$language, $all_voices{$first_voice}, $first_voice;
}
else {
printf "%8s : No voice found\n", $language;
}
}
##
##
German : [3] Microsoft Hedda Desktop - German
Japanese : [4] Microsoft Haruka Desktop - Japanese
French : No voice found
English : [0] Microsoft Zira Desktop - English (United States)
Chinese : [5] Microsoft Huihui Desktop - Chinese (Simplified)
##
##
...
if (@available_voices) {
if (@available_voices > 1) {
@available_voices = grep $all_voices{$_}, @available_voices;
}
...
##
##
German : [3] Microsoft Hedda Desktop - German
Japanese : [4] Microsoft Haruka Desktop - Japanese
French : No voice found
English : [1] Microsoft Hazel Desktop - English (Great Britain)
Chinese : [5] Microsoft Huihui Desktop - Chinese (Simplified)