帮忙看看这代码为啥运行后一点反应都没
perl吧
全部回复
仅看楼主
level 3
qq403720014 楼主
#!/usr/bin/perl
open(FD,"C:/ex12042713.log")||die("Can not open the file!$!n");
@array=;
close(FD);
my @array;
while(<>){
push @array, (split / /)[4] unless ( /^([#]|\s+)/ );
#只处理开头不是'#
'及空格的行
}
my $sum = 0;
$sum += $_ foreach @array;
print $sum;
帮忙看看这代码为啥运行后一点反应都没,读取文件中的固定位置的数据形成数组然后将数组中的数据相加
文件是ex12042713.log
文件内容
#Software: Microsoft Internet Information Services 5.1
#Version: 1.0
#Date: 2012-04-27 05:07:20
#Fields:
date time c-ip s-ip sc-bytes cs-bytes time-taken
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 28547 323 109
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 30416 392 47
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 15423 377 47
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 16300 389 15
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 3350 375 15
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 2820 374 16
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 6074 387 16
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 94267 384 172
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 48224 393 94
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 57753 393 62
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 2092 647 0
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 50689 393 16
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 62793 393 0
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 59863 393 31
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 3974 372 0
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 4154 372 15
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 3575 372 16
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 4304 372 16
2012-04-27 05:07:20 192.168.155.236 192.168.155.17 3906 372 0
2012年04月28日 08点04分 1
level 12
#!/usr/bin/perl
open(FD,"C:/ex12042713.log")||die("Can not open the file!$!n");
@array=<FD>;
close(FD);
my @array; 你这里刚读完就又初始化?数组清空了
while(<>) { 标准输入。。。等待键盘输入,程序不动了
后面没啥可说的了

2012年04月28日 09点04分 2
level 12
#!/usr/bin/perl
open(FD,"C:/ex12042713.log")||die("Can not open the file!$!n");
@array=;
close(FD);
my @array2;
foreach(@array){
push @array2, (split / /)[4] unless ( /^([#]|\s+)/ );
#只处理开头不是'#
'及空格的行
} my $sum = 0;
$sum += $_ foreach @array;
print $sum;

2012年04月28日 09点04分 3
level 12
#!/usr/bin/perl
open(FD,"C:/ex12042713.log")||die("Can not open the file!$!n");
@array=;
close(FD);
my @array2;
foreach(@array){
push @array2, (split / /)[4] unless ( /^([#]|\s+)/ );
#只处理开头不是'#
'及空格的行
} my $sum = 0;
$sum += $_ foreach @array2;
print $sum;
刚才少写了个2,不知道这样是不是你的原意
2012年04月28日 09点04分 4
level 3
qq403720014 楼主
是的,是我马大哈了,现在问题解决了,谢谢各位大大了。
2012年04月28日 10点04分 5
1