	#!/usr/bin/perl
	#
	# Sample connection oriented server using Perl
	#

	#open files for reading traces & writing filtered

	
	#process all files in directory with extension ".trc"
	foreach $file (<*.new>) {
       	open(TRACES, "+<$file") || die "$f will not open.";
		print "\nOpened: ". $file;
		
		$pos = tell(TRACES);
		$prev_pos = tell(TRACES);
		while(<TRACES>) { # takes data from $file
			@list = split(" ", $_);
			$prev_pos=$visited{@list[7]};
			if(defined $prev_pos ){
				&update($prev_pos, tell(TRACES), @list[0]);
			}
			$visited{@list[7]} = "$pos";
			$pos = tell(TRACES);
		}
		close(TRACES);
    }
	print "\nClosed: ". $s;

	#foreach $url (keys (%visited)) {
	#	$pos = $visited{$url};
	#	print "URL = $url, Position = $pos \n";
	#}
	
#############################################
# update info expiration date & next access
#############################################
	sub update($prevpos, $pospos, $time){
		my($prevpos, $pospos, $time) = @_;
			#print "$prev_pos $pos, ";
		seek(TRACES, $prevpos, 0);
		$_ = <TRACES>;
		substr($_, index($_, ">>>>>>>>>"), 9) =$time;
		if(@list[4] =~ /TCP_REFRESH_HIT|TCP_REF_FAIL_HIT|TCP_REFRESH_MISS|TCP_IMS_MISS/){
			substr($_, index($_, "<<<<<<<<<"), 9) =$time-1;
		}else{
			substr($_, index($_, "<<<<<<<<<"), 9) = "000000000";
		};
		seek(TRACES, $prevpos, 0);
		print TRACES $_;
		seek(TRACES, $pospos, 0);
	}
