http://www.perlmonks.org?node_id=11104497

Jannejannesson has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks! I have a script used for word frequency in text files. And the last time I used this script it worked great.. However now when I run it, I'm getting "empty replies". This is my code:

#!usr/bin/local/perl #use strict; #use warnings; my %count; my $file_name = shift or die "Usage: perl $0 [FILE]\n", open my $fh,'<', $file_name or die "Could not open '$file_name' $!"; while (my $line = <$fh>) { chomp $line; foreach my $word (split/\s+/, $line) { $count{$word}++; } } foreach my $word (sort keys %count) { printf "%-31s %s\n",$word, $count{$word}; } .. my @sorted_by_count = sort { $count{$b} <=> $count{$a} } keys %count; print "These are the 10 most frequented words of $file_name :\n"; print "$_ occured $count{$_} times\n" for @sorted_by_count[0 .. 9];

This is what I mean by "empty replies", it's as if it hasn't read the file, but I'm not getting any error messages..

:~/projekt$ perl wfreq.pl janne.txt These are the 10 most frequented words of janne.txt : occured times occured times occured times occured times occured times occured times occured times occured times occured times occured times :~/projekt$

Any help is greatly appreciated. Thanks in advance.

Replies are listed 'Best First'.
Re: Why isn't my script reading from my file?
by atcroft (Abbot) on Aug 15, 2019 at 02:21 UTC

    First of all, do not comment out 'use strict' and 'use warnings'. If you have to ask why, you aren't to a level where you should consider doing so.

    Second, you have a ',' (comma) at the end of your assignment to $file_name where you should have a ';' (semicolon), which is an error (that you would have found using 'strict' and 'warnings'). Once this was fixed, the code you provided (with the line '..' commented out) generated the expected output.

    Moral of the story: when in doubt, use 'use strict' and 'use warnings'.

    Hope that helps.

    2019-09-14: Removed duplicated 'and's and added missing 'the' to paragraph two (2), sentence two (2).

      Wow, can't believe I missed the colon there. Yeah I'm nowhere near the "required level" to comment out use strict, that was plainly due to rust and lack of knowledge :-) Thanks a lot for your answer, it fixed it :-)