Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: Hash to count characters

by nvivek (Vicar)
on Aug 12, 2010 at 03:27 UTC ( #854564=note: print w/ replies, xml ) Need Help??


in reply to Hash to count characters

Your first attempt is correct but you need to change the @line_char to @line_words because you split the line and store all the characters into @line_words array only @line_char.One more suggestion whenever you do program, use the following in your code.

use strict; use warnings;
Both the modules help you to correct the problems in your program.If you use any scalar, array or hash without declaration,it will warn you.


Comment on Re: Hash to count characters
Download Code
Re^2: Hash to count characters
by amittleider (Initiate) on Aug 12, 2010 at 05:46 UTC
    Thanks a lot for your responses! nvivek's post worked, however, there is just one slight bug. This will produce an output that includes spaces and newline characters, which are unwanted. I tried to change the regex to /\w+/, because this says that there will be only alphanumeric strings plus underscores, but this produces an empty output. I just don't understand why it would produce characters with a // regex, but nothing with /\w+/

      amittleider:

      Regarding the unwanted items in your report: There are three general ways to approach it:

      1. Remove unwanted characters before counting,
      2. Delete them after counting but before reporting, or
      3. Delete or ignore them during the report.

      Each method has situations where it is better than the others, but frequently any of them are good enough. Examples:

      # Case 1: don't count unwanted characters for my $char(@letters) { ++$charCount{$char} if $char !~ /[a-zA-Z]/; } # Case 2: delete unwanted characters my %t = %charCount; $t{$_}=$charCount{$_} for grep {/[a-zA-Z]/} keys %charCount; %charCount=%t; # Case 3: ignore unwanted items during report for my $char (sort keys %charCount) { next unless $char =~ /[a-zA-Z]/; # print report entry }

      ...roboticus

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (7)
As of 2014-10-24 23:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (138 votes), past polls