+ -
当前位置:首页 → 问答吧 → 紧急求助

紧急求助

时间:2010-08-06

来源:互联网

本帖最后由 heqidz 于 2010-08-06 11:47 编辑
  1. #!/usr/bin/perl

  2. use strict;
  3. use warnings;

  4. my %ip = ();

  5. my $logdir = "/var/log/apache";

  6. opendir(LOG,"$logdir") || die "$!\n";

  7. while (my $file = readdir(LOG)) {
  8.         next unless $file =~ m{\d+_\d{2}07\d{2}.*};
  9.         open(FILE,"$logdir/$file") || die "$!\n";
  10.         for (<FILE>) {
  11.             my (@array) = $_ =~ m{(\S+).*&serial=(\S+?)&.*};
  12.             print $array[1],"\n";
  13.             if (not exists $ip{$array[0]}) {
  14.                $ip{$array[0]} = 1;
  15.             } else {
  16.               $ip{$array[0]}++;
  17.             }
  18.        }
  19.        close FILE;
  20. }
  21. closedir LOG;

  22. open(RES,">>result.txt") || die "$!\n";
  23. while (my ($key,$val) = each %ip) {
  24.         print RES "$key\t\t$val\t\t\$array[1]n";
  25. }
  26. close RES;
复制代码
以上代码运行的时候有点小问题,调试了N次也不行,只好来请问大家了
这一段代码中如何将 $array[1]的值在最后一段print RES "$key\t\t$val\t\t\$array[1]n"打印出来呢,

作者: heqidz   发布时间: 2010-08-06

$array[1]保存在外面一个hash或者别的什么里面

作者: yybmsrs   发布时间: 2010-08-06

本帖最后由 heqidz 于 2010-08-06 11:52 编辑

回复 yybmsrs


    保存在外面hash,我还要另外再定义一个hash吗,是这意思,对这个有点模糊,还请明示,谢谢?

作者: heqidz   发布时间: 2010-08-06

没人知道吗,急死了

作者: heqidz   发布时间: 2010-08-06