Do you mean something like this?

####################################
open(LOG,"log.txt");
my %errs = ();
while(<LOG>){
  chomp $_;
  my($details,$err) = split(/\|/,$_);
  $err =~ s/^\s+//;
  $errs{$err}++ if $err;
}

print "Total for each error:\n";
print "---------------------\n\n";

foreach(sort keys %errs){
  print "$_.....$errs{$_}\n";
}

####################################

That will split each line on a pipe, then remove whitespaces at the
beginning of the variable, then store it as a hash key.

-----Original Message-----
From: Larry Steinberg [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, July 30, 2002 10:17 AM
To: [EMAIL PROTECTED]
Subject: Re: How to replace a literal with a variable


Here is what I need. I hope this explains it better.

I have a script which creates a report for No Listings Found errors. I'd
like to adapt it to create a report for any "ERR " code condition in the
log. The errors and values are below. TIA!

>>>Error | Value<<<

city not in state | TSE

ZIP not in state | ZSE

ZIP not in city | ZTE

can't find address in distance search | BAD

not enough address info in distance search | DBK

keyword but no category or name | KEY

more than one address in distance search | MUL

network problem | NET

no such category | CAT

no such category and no such city | NCC

no such category and city not in state | NCG

no such city | CIT

no listings found | NLF

no listings found and no such phone number | NSP

no fields, state only, or no state | NST

no such state | NSS

no such ZIP | ZIP

only one phone field | PHN

too many listings | TML

search timeout | TIM

no state and no ZIP | MSZ

no coverage | MCV

search failure | MSF

failure to connect to server | MSV

unknown error ("oops" page) | UNK

no results found | NRF

"Nkuipers" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> I'm probably not understanding what exactly you need....but...as I see it,
> $err holds whatever error message that you captured with a regex.  So if
you
> want to make a variable with the same name as the literal, dereference a
> variable with the name held in $err and the new var will autovivify:
>
> ($err) = ( $line =~ / ERR (\w+) /i );
> my $$err;
>
> I think.
>



-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to