#USAGE cat bedfull|perl bedfull2bed > bed
use strict;
my %cache;#cache previous line;
while (<STDIN>){
    chomp;
    my ($chr,$start,$end,$name,$score,$strand) = split ("\t",$_);
    if (! $cache{$name}){
	foreach my $name (keys %cache){
	    print join ("\t", @{$cache{$name}}),"\n";
	    delete $cache{$name};
	}
	$cache{$name}=[$chr,$start,$end,$name,$score,$strand];
    }
    if ($cache{$name}){
	if (abs ($cache{$name}[2] -$cache{$name}[1]) < abs ($end - $start)){
	    $cache{$name}=[$chr,$start,$end,$name,$score,$strand];
	}
    }
}
foreach my $name (keys %cache){
    print join ("\t", @{$cache{$name}}),"\n";
}
