Small Perl for forget

#!/usr/perl/bin/perl
open(FHD, "c:\\ccytest\\perftest.txt") || die("cna't open the file\n");

open(OFH, ">c:\\ccytest\\result.txt") || die("cna't open the file\n");
my $lineCount = 0;

my %hash;

my $chunkcount = 0;

my $ir1;
my $ir2;

while($line = <FHD>)
{
$lineCount++;
if($lineCount < 1000000)
{
	chomp($line);
	my ($r1,$r2,$r3) =  split(/\|/, $line);
	$r1=~s/^\s+|\s+$//g;
	$r3=~s/^\s+|\s+$//g;
	

	if($r3=~/^begin/i)
	{	
		#print "$lineCount $line \n";
		#print "$r1   $r3 \n";
	
		($ir1,$ir2) =  split(/\s+/, $r3);
		#print "$ir1 , $ir2 \n";	
	
		$ir2=~s/^\s+|\s+$//g;
		$hash{$ir2}= $r1;
	}
	elsif($r3=~/^end/i)
	{
		#print "$lineCount $line \n";
		
		#print "$r1   $r3 $r3 \n";

		($ir1,$ir2) =  split(/\s+/, $r3);
		$ir2=~s/^\s+|\s+$//g;
		#print "$ir1 $ir2 \n";	
		
		my $time = &CalTime($hash{$ir2}, $r1);

		if($ir2 =~ /^ReadNextChunk$/)
		{ 
			$chunkcount++;
			#print  OFH "$chunkcount	";
		}

		print OFH "$time	";

		#delete $hash{$r1};		

		if($ir2 =~ /^DeliverImportedRows$/)
		{ print  OFH "\n";}


	}
	else
	{
		#print "$r3\n";
		#last;
		next;
	}	
}
}
close(FHD);
close(OFH);
open(FHD, "c:\\ccytest\\result.txt") || die("cna't open the file\n");
my @carr;
my $countl= 0;
while($line = <FHD>)
{
	
	chomp($line);
	@arr =  split(/\s+/, $line);
	#print "$arr[0], $arr[1]\n";
	$countl++;
	if($countl < 61)
	{
		my $length = @arr;
		for(my $i =0; $i<$length; $i++ )
		{
			$carr[$i] += $arr[$i];	
		}
	}	
}
open(OFH, ">>c:\\ccytest\\result.txt") || die("cna't open the file\n");
print OFH "\n";
foreach $num (@carr)
{
	print OFH "$num	";	
}
print OFH "\n";

my $tt= &CalTime("06:30:00.785", "06:38:17.066");
print "$tt\n";
close(FHD);



sub CalTime()
{
	my ($t1,$t2) = @_;
	
	my ($t11,$t12,$t13) =  split(/\:/, $t1);
	my ($t131,$t132) =  split(/\./, $t13);


	my ($t21,$t22,$t23) =  split(/\:/, $t2);
	my ($t231,$t232) =  split(/\./, $t23);	

	my $totaltime;
	my $hour;
	my $min;
	my $second;
	my $msecond;

	if($t21 - $t11 < 0)
	{
		$hour = $t21+24 - $t11;	
	}
	else
	{
		$hour = $t21 - $t11;
	}
		$min = $t22 - $t12;
		$second = $t231 - $t131;
		$msecond = $t232 - $t132;
		$totaltime =  $hour * 3600 * 1000 + $min * 60 * 1000 + $second * 1000 + $msecond;
#print "$t11,$t12,$t13 :: $t21,$t22,$t23\n";
	return $totaltime;
}

just for  record, because some command forget very quickly

posted on 2012-01-06 10:15  子虚乌有  阅读(180)  评论(0)    收藏  举报