#!/usr/bin/perl -w use Geo::Distance; use Text::CSV_XS; my $geo = new Geo::Distance; open FIRST, "new({ 'quote_char' => '"', 'escape_char' => '"', 'sep_char' => ',' }); open(DAT,">/gps/datapoints.csv") || die("Cannot Open File"); while( my $first_file_line = ){ if ($csv->parse($first_file_line)) { . my ($lon2, $lat2) = $csv->fields; open SECOND, "){ if ($csv->parse($second_file_line)) { ($lat, $lon) = $csv->fields; $distance = $geo->distance( 'foot', $lon,$lat => $lon2,$lat2 ); if ( $distance < 1000 ) { print DAT "$lat2, $lon2, $lat, $lon, $distance \r\n"; } }} close SECOND; } else { my $err = $csv->error_input; print "parse() failed on argument: ", $err, "\n"; } } close FIRST; close DAT;