Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Counting lines by content

by sch (Pilgrim)
on Oct 09, 2002 at 11:25 UTC ( [id://203891]=note: print w/replies, xml ) Need Help??


in reply to Counting lines by content

I think the easiest way would be to use a hash - something like this?

Oops - just realised this doesn't handle the case where the 3rd field is a duplicate - in fact it doesn't worry about the 3rd field at all. guha has supplied some modifed code, which I've used to replace my slightly dodgy stuff!

#!perl use strict; use warnings; use diagnostics; my ($type, $desc, %fruit); open (FH, "y") || die "Cannot find file"; while (<FH>) { (undef, $type, $desc) = split /:/; $fruit{$type}{$desc}++; } close FH; foreach my $type (keys(%fruit)) { print "$type : ",scalar keys %{ $fruit{$type} }, "\n"; }

Replies are listed 'Best First'.
Re: Re: Counting lines by content
by l2kashe (Deacon) on Oct 09, 2002 at 13:47 UTC
    A hash is the right answer, but I believe that he is looking for a hash of hashes....
    #!/usr/bin/perl open(IN,"/some/file") || die "Cant open file\nReason: $!\n"; while (<IN>) { chomp($line = $_); ($first,$second) = (split(/:/, $line))[1,2]; $fruit{$first}{count}++; $fruit{$first}{$second}++; } close(IN); foreach $k (sort(keys(%fruit))) { print "$k $fruit{$k}{count}\n"; }
    The reason I used count as well, is so A) I dont have to loop to figure out what my total count for $first is, and B) I also can test for $fruit{$k}{blah} and determine if there were duplicates. You could add the test within the while loop.. I.e test for $fruit{$first}{$second} and if it exists warn or something, else increment it :)... Have fun /* * And the Creator, against his better judgement, wrote man.c */

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://203891]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (4)
As of 2024-04-23 22:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found