in reply to counting elements using a hash
The second step is simply to count using a hash table. It is not necessary to test for exists(). Perl will create a new key if the key doesn't exist.
Try again and show some just a couple of lines of example input and your revised code.#!/usr/bin/perl -w use strict; my %count; open (INPUT, '<', "some_input_file") or die "unable to open some_input_file"); while (<INPUT>) { my ($number) =~ /(\d+)/; #maybe???? next unless $number; #skip undef's $count{$number}++; #new key if $number not there } foreach my $number (sort{$a <=> $b} keys %count) #numeric sort { print "$number occurs $count{$number} time(s)\n"; }
There is no need to iterate over all 101 possibilities for the number on each line. Process each line once, get the number, make a decision and it is "over with" - don't loop 100 times for each input line.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: counting elements using a hash
by AnomalousMonk (Archbishop) on Sep 23, 2012 at 09:08 UTC | |
by Marshall (Canon) on Sep 23, 2012 at 12:28 UTC | |
|
Re^2: counting elements using a hash
by bk1388 (Initiate) on Sep 23, 2012 at 21:13 UTC |