Here we go again... get involved in a very serious discussion about a not-so-important subject. So what? I'm also bored here...

Generally it's a good programming practice to separate data from the code. Putting the country codes list in a text file makes it easier to maintain (update) the info without having to touch the code. Hint: I'm not talking about speed, I'm talking about flexibility.
Code:
# showcountry.pl
open(FIN, "countrycodes.txt");

while(<FIN>) {
  chomp;
  ($code, $country) = split(/\s/, $_);
  if ($code eq $ARGV[0]) { print "$country\n"; last; }
}
But for some reason I always prefer a shell script.
Code:
# showcountry.sh
awk -v code=$1 '{ if ($1 == code) print $2 }' countrycodes.txt

# showcountry2.sh
grep $1 countrycodes.txt | cut -f2
And as a bonus...
Code:
// showcountry.c
#include <stdio.h>
#include <string.h>

char *find(const char *str)
{
  FILE *fp;
  static char line[80];
  
  if (fp = fopen("countrycodes.txt", "r")) {
    while (fgets(line, 80, fp)) if (strstr(line, str)) return line;
    fclose(fp);
  }
  
  line[0] = 0;
  return line;
}

char *showcol2(char *str)
{
  char *token;
  char *delim = "\t"; // this is a tab in quotes
  static char result[80];
  
  token = strtok(str, delim);
  token = strtok(NULL, delim);
  if (token) strcpy(result, token);
  return result;
}

int main(int argc, char *argv[])
{
  puts(showcol2(find(argv[1])));
}
Of course there should be a tab separated text file named countrycodes.txt in current directory.

Oh well I guess we all have too much time in our hands...

Peace always,
<jdenny>