Static, so no reason to redo it every time.
}
else {
$_ = $short || $name;
- s/,.*//;
- s/(?<=.)\(.*\)\s*//;
- s/ republic\b//gi;
- s/ islands?\b//gi;
- s/\bthe //g;
- s/ and / & /g and s/(?<=.)[a-z ]+//g;
- s/\bsaint /st /gi;
- s/South(?:ern)? /S-/g;
- s/North(?:ern)? /N-/g;
- s/New /n./g;
- s/(\S)(\S+)-/$1-/g; # strip most chars preceding dash
- s/(\S{4}[b-df-hj-np-tv-xz])((?<!Austr)(?!land)\w{2,})/$1./g; # abbreviate (at consonant)
- $_ = EscapeHTML($_);
}
$name =~ s/([^,]*), (.*)/$2 $1/;
printf "\n".'<td class="%s" title="%s">%s',
$cc{ lc $iso } = [ $name, $class ];
}
+for (values %cc) {
+ for ($_->[2] //= $_->[0]) {
+ s/,.*//;
+ s/(?<=.)\(.*\)\s*//;
+ s/ republic\b//gi;
+ s/ islands?\b//gi;
+ s/\bthe //g;
+ s/ and / & /g and s/(?<=.)[a-z ]+//g;
+ s/\bsaint /st /gi;
+ s/South(?:ern)? /S-/g;
+ s/North(?:ern)? /N-/g;
+ s/New /n./g;
+ s/(\S)(\S+)-/$1-/g; # strip most chars preceding dash
+ s/(\S{4}[b-df-hj-np-tv-xz])((?<!Austr)(?!land)\w{2,})/$1./g; # abbreviate (at consonant)
+ }
+}
+
say "# automatically generated by $0";
use Data::Dump 'dd';
$Data::Dump::INDENT = '';