in reply to help on how to create a hash look up table requested.

Maybe something like this?
#!/usr/bin/perl -w use strict; use Data::Dumper::Simple; my %codes; while (<DATA>) { chomp; my $foo = (split /:/, $_)[1]; if (!$codes{$foo}) { $codes{$foo}++; } } print Dumper(%codes); __DATA__ HIT: code2 HIT: code3 HIT: code1 HIT: code90 HIT: code2 HIT: code34 HIT: code90

Which prints:

%codes = ( ' code90' => 1, ' code2' => 1, ' code3' => 1, ' code2 ' => 1, ' code1' => 1, ' code34' => 1 );

Actually, you don't really need the "if" block inside the while loop. You could just increment each hash value regardless. That won't give you any duplicates - it will just mean that some have a higher numerical value. Which (if I understand correctly) shouldn't make any difference.

Hope this helps,
Darren :)

Replies are listed 'Best First'.
Re^2: help on how to create a hash look up table requested.
by johngg (Canon) on Aug 10, 2006 at 20:57 UTC
    Minor nit, but if you amend the split slightly to my $foo = (split /:\s+/, $_)[1];you can eliminate the leading space from the hash keys. That space might trip you up later if you are expecting to be able to do something like if ( exists $codes{q{code90}} ) { ... }.

    Cheers,

    JohnGG

Re^2: help on how to create a hash look up table requested.
by sh1tn (Priest) on Aug 10, 2006 at 21:33 UTC
    ... while(<DATA>){ /:\s(\S+)$/ => $1 and $code{$1}++ } ...