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
I posted this last night about 7:30 but for some reason it doesn't show up. Maybe there's something wrong with using groups.google.com web portal to this group. For something this trivial, where you're using if elsif blocks that only contain 1 simple line as shown by others, I prefer to condense it a little to 2 slightly more complex statements, but are still easily understood. I'm sure others here will disagree with my approach. use warnings; use strict; use Data::Dumper; my ($key, %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/