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

Re: hash help

by davido (Archbishop)
on Sep 11, 2012 at 20:20 UTC ( #993056=note: print w/replies, xml ) Need Help??

in reply to hash help

On line 2 you're not using open correctly, and not checking the return value for success (see perlopentut). You never read from a file at all. The rest accomplishes nothing useful.

Almost everything you need to accomplish this task is addressed in perlintro. Here is a solution expressed as a one-liner (which would also require reading a little from perlrun and perlrequick):

perl -nE '$count{$1}++ while /\b(the|hi|linux)\b/ig; END{say "$_ => $c +ount{$_}" for keys %count}' filename.txt

As a full script, it might look like this:

#!/usr/bin/perl open $fh, '<', $ARGV[0] or die $!; while( <$fh> ) { $count{$1}++ while /\b(the|hi|linux)\b/ig; } print "$_ => $count{$_}\n" for keys %count;

Run it as:

$ ./scriptname filename.txt

Update: It would have been polite to let us know you are following up to the question you asked here: Help with accepting inputs, wordcount, and print to a file, if for no other reason than to provide us with that additional context.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (6)
As of 2018-06-22 20:07 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (124 votes). Check out past polls.