Hello Perl community,

I am trying to get a simple program working that will count the words in a
text file and put them in a hash with the key being the word and the value
being its frequency in the text file.  Here is my code:

---

#!/usr/bin/perl
use strict;
use warnings;

{

open IN, "<file.txt" or die "cannot open file: $!";

my %word_count;
my @input_file = <IN>;

foreach (@input_file){

my @x = split;


  foreach (@x){


 $word_count{$_}++;

  }
}

foreach (%word_count){
print "$word_count{$_}\n\n";
 }
}
---

The problem is on the 3rd to last line I get this error when I run it:

Use of uninitialized value within %word_count in concatenation (.) or string
at perl.pl line 26, <IN> line 520.

I don't understand why any value would be unintialized in that hash as the
loops previous should have taken care of all the initializing and word
counts.  If I remove the last foreach loop and just put a common word for
ex.: print "$word_count{the}\n"  I get the count for that word.

Thanks,

Jon

Reply via email to