Hello,
I am getting the following error when I am trying to use regex to
match a pattern and then access the memory variables:
Any insight as to what I am doing wrong is greatly appreciated.
Thank you,
Chris
Use of uninitialized value $1 in hash element at ./heh.pl line 22,
<$fh> line 1211.
Use of uninitialized value $4 in hash element at ./heh.pl line 22,
<$fh> line 1211.
Use of uninitialized value $5 in hash element at ./heh.pl line 22,
<$fh> line 1211.
An example of what I am trying to match is:
10/17/11 18:25:20 #578030
25 REPT:CELL 221 CDM 2, CRC, HEH
SUPPRESSED MSGS: 0
ERROR TYPE: ONEBTS MODULAR CELL ERROR
SET: MLG BANDWIDTH CHANGE
MLG 1 BANDWIDTH = 1536
00 00 06 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00 00
10/17/11 18:25:20 #578031
25 REPT:CELL 221 CDM 2, CRC, HEH
SUPPRESSED MSGS: 0
ERROR TYPE: ONEBTS MODULAR CELL ERROR
SET: DS1-MLG ASSOCIATION CHANGE
MLG 1 DS1 1,2
00 00 00 00 00 00 00 00
03 00 00 00 01 00 05 05
My program:
#!/usr/bin/perl
use warnings;
use strict;
use POSIX;
# my $filepath =
sprintf("/omp/omp-data/logs/OMPROP1/%s.APX",strftime("%y%m%d%H",localtime));
my $filepath = ("/tmp/110923.APX"); # for testing
my $runTime =
sprintf("/home/cstinemetz/programs/%s.txt",strftime("%Y-%m-%d-%H:%M",localtime));
my $fileDate = strftime("%y%m%d%H%",localtime);
open my $fh, '<', $filepath or die "ERROR opening $filepath: $!";
open my $out, '>', $runTime or die "ERROR opening $runTime: $!";
my %date;
my %cell;
my %heh_type_count;
while (my $line = <$fh>) {
if ($line =~ /17|18|19|20|21+:(\d+):(\d+)+\n+\n+CELL\s+(\d+)\s+(.+?),.+?HEH/){
$cell{$1}{$4}{$5}++;
$heh_type_count{$5}++;
}
}
# header
print "HOUR\t"."CELL\t".join("\t",sort keys %heh_type_count)."\n";
# body
foreach my $cellNo (sort {$a <=> $b} keys %cell) {
print "$cellNo";
foreach my $heh_hits (sort keys %heh_type_count) {
if (exists $cell{$cellNo}{$heh_hits}) {
print "\t $cell{$cellNo}{$heh_hits}";
}
else {
print "\t 0";
}
}
print "\n";
}
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/