log1.log
--------
Time=00:00:00.001|Request=det|Category=btyjar
Time=00:00:00.002|Request=sdf|Category=345
Time=00:00:00.003|Request=fdgh|Category=cvn
Time=00:00:00.004|Request=cv|Category=ryui
log2.log
--------
Time=00:00:00.001|Request=h5|Category=56yjh
Time=00:00:00.002|Request=hjk|Category=dr6
Time=00:00:00.003|Request=qw|Category=345
Time=00:00:00.004|Request=thgj|Category=234
#### for my $log (@logs) { if ($log =~ /\.gz$/) { eval "`gunzip $log`"; next if $@; $log = substr $log, 0, -3; } open(LOG,$log) || warn "log not opened\n"; while () { chomp; my @data = split /\|/; for (@data) { my($cat,$value) = split /=/; $logdata{$log}{$.}{lc($cat)} = $value; } } close LOG; }