<: use utf8; use strict; use warnings; use open IO => ':utf8'; our $VERSION = 'v1.0'; $header{content_type} = 'text/html; charset=utf-8'; :> country code cheat sheet <: my %styles = map {$_ => $_} qw(dark mono red); our $style = exists $get{style} && $styles{$get{style}} || 'light'; printf(qq{\n}, $_ eq $style ? 'stylesheet' : 'alternate stylesheet', "/$_.css", $_ ) for keys %styles; :>

Country codes

<: my $cc = do 'cc.inc.pl'; sub quote { local $_ = shift; s/"/"/g; s//>/g; return $_; } { printf ''; print ''; for my $section (qw{thead}) { print "<$section>'; for my $row ('a' .. 'z') { print '
↳"; print '', $_ for 'a' .. 'z'; print "\n"; } print '
', $row; for my $col ('a' .. 'z') { my $code = $row . $col; my $country = $cc->{$code} or do { print $code =~ /^x|^q[m-z]|^aa|^zz/ ? '' : ''; next; }; my ($name, $class, $short, $ref) = @$country; $ref ||= $code; local $_ = $ref; if (exists $get{show}) { my $img = "flag/$ref.png"; $_ = sprintf '%s', $img, $ref if -e $img; } 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])(\w{2,})/$1./g; # abbreviate (at consonant) $_ = quote($_); } $name =~ s/([^,]*), (.*)/$2 $1/; printf "\n".'%s', $_ ? 'X '.$class : '', quote("$code: $name"), $_; } print "\n"; } print "
\n"; } :>
africa europe asia antarctica oceania south america north america reserved user-assigned