Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much

Re: hash to count words

by NetWallah (Canon)
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.

Replies are listed 'Best First'.
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.

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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://993504]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2018-06-23 23:58 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.