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

Re: hash to count words

by NetWallah (Abbot)
on Sep 13, 2012 at 14:30 UTC ( #993504=note: print w/ replies, xml ) Need Help??


in reply to hash to count words

Please use "code" tags correctly, as described in Writeup Formatting Tips.

Your regex "$word =~ s/^\w\x\//g;" is invalid.

you probably want:

$word=~s/[^\w]//g; # Eliminate non-word chars
Your re-initilazation of "%hash=()" within the loop makes the hash useless.

Declare it outside the loop, and add data to it using

$hash{$word}++; # Get a count of the word
Later , you can get a list of words found by accessing:
keys (%hash)
Please try to follow davido's excellent advice in response to your previous question on the same subject.

             I hope life isn't a big joke, because I don't get it.
                   -SNL


Comment on Re: hash to count words
Select or Download Code
Re^2: hash to count words
by underoathed (Initiate) on Sep 13, 2012 at 14:46 UTC

    So here is what i have for code so far for the hash.

    #!/usr/bin/perl -w open (IN, $file) or die "Cannot open file '$file' : $!\n; $line = <IN>; @array = split ( ' ', $line); foreach $word (@array){ $word =~ s/^\w\w//g; $word = lc ($word); print "$word\n";} $hash {$the}++; $hash {$linux}++; $hash {$hello}++;
    What am I doing wrong?
      Ok - I'll take a stab at answering your question "What am I doing wrong?" :
      • Not using 'strict'. (add "use strict;" to the top of your code)
      • Not using canonical "open" with local filehandle. (Try : open(my $f, "<", $file) or die "Cannot open '$file':$!";)
      • Not declaring variables (use my @array; (follows from "use strict"))
      • Not formatting/aligning your code for visibility
      • Not following advice (davido's code works for what you need)
      • Not reading how hashes work
      • Not closing the file handle you opened.
      • Not posing your question(s) clearly
      • Not showing what you expect as a result of your code
      • Not showing sample data
      The answer to the question in your previous post on the meaning of "/g" can be found by running "perldoc perlre".

                   I hope life isn't a big joke, because I don't get it.
                         -SNL

        Please allow an addition to the list: Not bothering to fix a previous post known to be problematic.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (16)
As of 2014-09-23 14:32 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (223 votes), past polls