#!/opt/local/bin/perl
use Getopt::Long;
use List::Util 1.33 'any';
my $zonesfile;
my $varfile;
my $filetype = "csv";
my @valid_filetypes = ("csv", "vcf");
GetOptions("zones=s" => \$zonesfile, "varsfile=s" => \$varsfile, "filetype=s" => \$filetype);

open(ZONES, $zonesfile) || die("Cannot open \"$zonesfile\": $!");
open(VARS, $varsfile) || die("Cannot open \"$varsfile\": $!");
if(!(any{$filetype} @valid_filetypes)) {die("Unrecognize filetype \"$filetype\"")};
my $sep = ", *";
if($filetype eq "vcf")
{
	$sep = "[	 ]+";
}

while(<VARS>)
{
	$unaltered_line = $_;
	chomp;
	s/"//g;
	@vars_line = split($sep);
	$vars_lg = $vars_line[0];
	$vars_loc = $vars_line[1];
#	print STDERR "Sep is $sep; read in vars loc: $vars_loc\n";
	while($zone_lg lt $vars_lg || ($zone_lg eq $vars_lg && $zone_end < $vars_loc))
	{
		if($_ = <ZONES>)
		{
#			print "Read: $_";
			@zone_entry = split(", *");
			$zone_lg = $zone_entry[0];
			$zone_start = $zone_entry[1];
			$zone_end = $zone_entry[2];
		}
		else
		{
			$zone_lg = "zzzzzzz";
			$zone_start = inf;
			$zone_end = inf;
#			print "End of zones\n";
		}
	}
	if($vars_lg lt $zone_lg ||  $vars_loc < $zone_start)
	{
		print $unaltered_line;
	}
#	else{print "X $unaltered_line";}
}
close(VARS);
close(ZONES);
