#!/usr/bin/perl #usage processcart.pl boundrydata.dat boundrymeta.dat Statename # see http://www.wikipedia.org/w/wiki.phtml?title=Wikipedia_talk:WikiProject_U.S._Counties&action=submit for details on this script my $statename=$ARGV[2]; my $countynum=0; open(COORDS, $ARGV[0]) || die; while() { if(/^\s+(\d+)(\s+\S+\s+\S+)$/) { $curcountynum=$1; $bordercoord=$2; $countynums{$bordercoord}{$curcountynum}=1; } elsif (/^(\s+\S+\s+\S+)$/) { $bordercoord=$1; $countynums4coord{$bordercoord}{$curcountynum}=1; foreach $cnum (keys %{ $countynums4coord{$bordercoord} } ) { if($cnum!=$curcountynum) { $adjcounty{$cnum}{$curcountynum}=1; $adjcounty{$curcountynum}{$cnum}=1; } } } } close(COORDS); open(NAMES, $ARGV[1]) || die; $buffer=join("",); foreach $record (split("\n \n ", $buffer)) { @fields=split(/"? ?\n ?"?/, $record); $name[$fields[0]]=$fields[3]; } close(NAMES); foreach $cnum1 (keys %adjcounty) { print "\n\n$name[$cnum1]:\n"; print "=== Adjacent Counties ===\n"; foreach $cnum2 (keys %{ $adjcounty{$cnum1} } ) { print "*[[$name[$cnum2] County, $statename]]\n"; } print "\n"; }