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: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to