Я пытаюсь напечатать количество строк, количество слов, количество символов и распечатать слова в файле, а также количество раз, когда они происходят. Я получаю ошибки с последней частью (т. Е. Печатаю слова и их вхождения). Все остальное отлично работает.Печать частоты слов в текстовом файле Perl
Сообщения об ошибке я получаю:
Bareword found where operator expected at wc.pl line 34, near ""Number of lines: $lcnt\","Frequency"
(Missing operator before Frequency?)
syntax error at wc.pl line 34, near ""Number of lines: $lcnt\","Frequency of "
Can't find string terminator '"' anywhere before EOF at wc.pl line 34.
Вот мой код:
#!/usr/bin/perl -w
use warnings;
use strict;
my $lcnt = 0;
my $wcnt = 0;
my $ccnt = 0;
my %count;
my $word;
my $count;
open my $INFILE, '<', $ARGV[0] or die $!;
while(my $line = <$INFILE>) {
$lcnt++;
$ccnt += length($line);
my @words = split(/\s+/, $line);
$wcnt += scalar(@words);
foreach $count(@words) {
$count{@words}++;
}
}
foreach $word (sort keys %count) {
print "Number of characters: $ccnt\n","Number of words: $wcnt\n","Number of lines: $lcnt\","Frequency of words in the file: $word : $count{$word}";
}
close $INFILE;
Это то, что мне нужно это сделать: вход
Примера из текстового файла:
This is a test, another test
#test# 234test test234
Пример вывода:
Number of characters: 52
Number of words: 9
Number of lines: 2
Frequency of words in the file:
--------------------------------
#test#: 1
234test: 1
This: 1
a: 1
another: 1
is: 1
test: 1
test,: 1
test234: 1
Любая помощь будет принята с благодарностью!
Я ценю помощь! @DavidO – chomp