Perl哈希(可能是哈希的散列)

时间:2014-03-17 05:49:47

标签: perl hash terminal

在perl中工作我设法编写了一个从文件用户名中读取的程序。每个用户名都已登录和注销,并且已记录这些日志。例如:

maclawty796    pts/1     ip-64-134-238-2.      Fri Oct 21 14:23 - 14:25  
maclawty796    pts/2     10.1.28.122           Fri Oct 21 09:42 - 09:55  
ehowe          pts/3     10.1.28.204           Fri Oct 21 09:28 - 09:29

如您所见,用户可能会被记录两次。我试图不通过用户名和月份统一所有这些帐户的信息。例如:

maclawty796 Oct xxx minutes
maclawty796 Sep xxx minutes

我已经设法获得单独的时间和日志,请参阅下面的代码,现在我假设统一时间和日期,我必须使用散列或散列哈希。我有一种感觉,我的哈希必须是用户名,然后是用户名处于活动状态的两个月的哈希值,并且在该哈希值内另一个哈希值,用于添加用户在该月登录的所有时间。然后我必须输出它。问题是,我不知道从哪里开始哈希。在代码中,您可以看到我徒劳地尝试制作基本哈希。

#!/usr/bin/perl
use strict;
my($name, $month, $time1, $time2, $time3, $time4, $totstime, $totstime2, $totaltime);
my %gash = (
        username => $name,
        );

open (MYFILE, 'Textlog.txt');
while (<MYFILE>){
if(($name, $month, $time1, $time2, $time3, $time4) = /(\w+\d*?).*(Oct|Sep).*(\d\d).*(\d\d).*(\d\d).*(\d\d)/){
chomp;
$totstime = ($time3 - $time1)*60;
$totstime2 = $time4 - $time2;
$totaltime = $totstime + $totstime2;
print "name $name month $month $totaltime\n";
}
}
close(MYFILE);

0 个答案:

没有答案