On Aug 31, 6:05 pm, [EMAIL PROTECTED] (Chris E. Rempola) wrote:
> I'm trying to parse qmail-qread data, but don't know how to find the
> number of occurrences after a particular string.  Here is the data:
>
> +++++++++++ Beginning of data +++++++++++++++++++++++++++++++++++++++++
> 28 Aug 2007 17:00:47 GMT  #8807850  41428  <[EMAIL PROTECTED]>
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>
>    28 Aug 2007 17:00:47 GMT  #8807850  41428  <[EMAIL PROTECTED]>
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
>    done  remote  [EMAIL PROTECTED]
> ++++++++++++ End of Data ++++++++++++++++++++++++++++++++++++++
>
> How would I make it look for the (#) sign and count every occurence of
> the word(remote) below it?  So the script would know that
> '[EMAIL PROTECTED]' sent 10 emails and that '[EMAIL PROTECTED]' sent
> 5 emails.  Any help appreciated.  Thank you.
>
> -Chris

use warnings;
use strict;
use Data::Dumper;

my $key;
my %remote;

while(my $line = <DATA>) {
   $key = $1 if $line =~ /#[\d ]+<([^>]+)>/;
   $remote{$key}++ if defined $key and $line =~ /done  remote/;
}
print Dumper \%remote;

__DATA__
28 Aug 2007 17:00:47 GMT  #8807850  41428  <[EMAIL PROTECTED]>
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]

28 Aug 2007 17:00:47 GMT  #8807850  41428  <[EMAIL PROTECTED]>
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]
   done  remote  [EMAIL PROTECTED]


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to