Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: hash to count words

by underoathed (Initiate)
on Sep 13, 2012 at 14:46 UTC ( #993506=note: print w/ replies, xml ) Need Help??


in reply to Re: hash to count words
in thread hash to count words

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?


Comment on Re^2: hash to count words
Download Code
Re^3: hash to count words
by NetWallah (Abbot) on Sep 13, 2012 at 15:46 UTC
    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.

        Now that I have that under control, how do I print the output of the script to a file? I cannot figure it out. Thanks in advance and of course here is my coding.
        #!/usr/bin/perl -w foreach $file (@ARGV) { open (IN, $file) or die "Cannot open file '$file' : $!\n"; while(<>) { $line = <IN>; @array = split (' ', $line); foreach $word (@array){ $word =~ s/[^\w\s]//g; $word = lc ($word); $wordcount{$word} += 1; } } foreach $key (keys %wordcount) { print "Word: $key " . ($wordcount{$key}) . "\n"; } } print ("scriptOutput\n\n");

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2015-07-04 01:43 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (57 votes), past polls