帮忙看看这个脚本有什么问题

帮忙看看这个脚本有什么问题

帮忙看看这个脚本有什么问题
大家好!

按书上的例子作了如下脚本,它的功能是对UNIX的last输出作出统计,统计用户总的登录时间和次数,并按字母顺序排序,可为什么我得不要想要的结果?请各位大虾帮忙看看,谢谢!

[code]
#!/usr/bin/perl -w

while (<>) {
if (/^(\S*)\s*.*\((.*):(.*)\)$/) {
$hours{$1} += $2;
$minutes{$2} += $3;
$logins{$1}++;
}
}
foreach $user (sort (keys %hours)) {
print "test";
$hours{$user} += int ($minutes{$user} / 60);
$minutes{$user} %= 60;
print "User $user, total login time ";
printf "%02d:%02d,", $hours{$user}, $minutes{$user};
print "total logins $logins{$user}\n";
}
[/code]

last 的输出样例:
[code]
jackie pts/1 192.168.2.105 Sat Feb 3 15:54 - 16:20 (00:25)
[/code]
有没有人能帮忙看看?--.
有没有人能帮忙看看?

这个程序运行不会出错,就是什么结果都没有,我测试了一下,第一个while循环应该没问题,变量$1、$2、$3能分别对应到登录用户、登录的小时和分钟,但是foreach 程序块里似乎没有执行,难道这个hash表:hours没有成功的建立吗?