迭代哈希

原创 2012年03月22日 13:36:45

迭代哈希怎么玩啊。。。数组作为哈希表A的值,哈希表A作为另一哈希表B的值
终于搞定了。。。得记录下 

#!/usr/bin/perl -w


sub gettime
{
 my $line = $_[0];
 my @temptime =split(/timestamp/,$_);
 $temptime[1] =~s/\>//;
 $temptime[1] =~s/\<//;
 $temptime[1] =~s/GMT\///;
 my @temptime2 = split(/\s/,$temptime[1]);
 my @gettime =split(/\:/,$temptime2[1]); 
 my $second = pop(@gettime);
 my @gettime2 = split(/\./,$second);
 push(@gettime,$gettime2[0]); 
 
 return @gettime;
}
sub getid
{
 my $line = $_[0];
 my @temp = split(/submit_id>/,$_);
 my @temp2 =split(/submit/,$temp[1]);
 $temp2[0]=~s/\///;
 $temp2[0]=~s/\<//;
 return $temp2[0];
}
sub main
{
 our @submittime=();
 our @pricetime=() ;
 our $averagetime = 0;
 our $alltime =0;
 our @id =();
 our @priceid =();
 @id = keys our%parsehash;
 our %onehash = values(%parsehash);
 %onehash = ("submittime"=>\@submit,
    "pricetime"=>\@pricetime);
 
 
 our $inputfile = $ARGV[0];
 open(INF,"$inputfile")or die ("can not open $inputfile!\n");
 while(<INF>)
 {
  if(/<submit taker/)
  {
   my @submittime = gettime($_);
   my $tempid = getid($_);
   push(@id,$tempid);
   print "submitid-$tempid $submittime[0]:$submittime[1]:$submittime[2]\n";
   
   $parsehash{$tempid}{"submittime"}=\@submittime;
   $tempid =(); 
   next;
  } 
  elsif(/<price>/)
  {
   my @pricetime = gettime($_);
   my $pid = getid($_);
   print "price---$pid $pricetime[0]:$pricetime[1]:$pricetime[2]\n";
   
   print "111=====we are looking for $pid in hash\n";
   
   if (exists $parsehash{$pid})
   {
    if(exists $parsehash{$pid}{"pricetime"}){print "priceid $pid Exist!!!!!!\n";}
    else
    {
     $parsehash{$pid}{"pricetime"}=\@pricetime;
     print "priceid $pid find match!!!!!!\n";system("pause");
    }
   }
   print "222=====we are looking for $pid in price \n"; 
   my $get = grep(/^$pid$/,@priceid);
   if(!$get)
   {
    push(@priceid,$pid);
    print "response id :$pid ^^^^^^\n";system("pause");
   }
   
   next;
  } 
 }
 close(INF); 
 
 
 my $onetime=0;
 my $number =0;
 foreach my $i(@priceid)
 {
  print "AAAAA $i\n";system ("pause");
  my @a =values ($parsehash{$i}{"submittime"});
  my @b =values ($parsehash{$i}{"pricetime"});
  $onetime =($b[0]-$a[0])*3600+($b[1]-$a[1])*60+($b[2]-$a[2]);
  foreach my$x (@a){print "$x ";}
  print "\n";
  foreach my$y (@b){print "$y ";}
  print "\n";
  
  print "the deal id=$i,time between request and response is $onetime\n";
  system ("pause");
  $alltime +=$onetime;
  $number++;
 }
 $averagetime = $alltime/$number;
 print "averagetime:$averagetime\n";
}
main();

 

向一个函数传递多个参数 我还没搞定。。。。待续。。。。。 

life游戏哈希实现

  • 2015年08月21日 23:21
  • 307KB
  • 下载

C语言哈希查找实例

  • 2015年11月12日 13:43
  • 2KB
  • 下载

经典算法学习——哈希查找

哈希查找也称为散列查找。所谓的哈希其实就是在记录的存储位置和记录的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值的映射f...

哈希MD5验证

  • 2015年03月15日 20:44
  • 98KB
  • 下载

哈希计算工具GtkHash

  • 2014年05月27日 07:10
  • 492KB
  • 下载

php的哈希(实现数组的数据结构)

php的哈希(实现数组的数据结构)   2012-12-31 01:31:37|  分类: 默认分类 |字号 订阅 从zvalue_value结构中看出,...

哈希码破解利器说明

  • 2014年08月14日 16:52
  • 8KB
  • 下载

分布式哈希Chord

  • 2014年06月24日 21:40
  • 2.9MB
  • 下载

24-哈希碰撞攻击是什么?

24-哈希碰撞攻击是什么?最近哈希表碰撞攻击(Hashtable collisions as DOS attack)的话题不断被提起,各种语言纷纷中招。本文结合PHP内核源码,聊一聊这种攻击的原理及实...
  • ghostlv
  • ghostlv
  • 2016年04月25日 12:21
  • 6882
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:迭代哈希
举报原因:
原因补充:

(最多只允许输入30个字)