1
我正在试图增加一个字频率计数器,我把所有的STDIN和报告给STDOUT输入中出现的每个单词以及它出现了多少次。我添加了-i选项,并且在哈希之前将所有的字母都转换为小写字母。Perl字频率计数器
我遇到的问题是没有任何内容向STDOUT报告,也没有打印到命令控制台。它运行时没有产生或给出错误。
#!/usr/bin/perl
use strict;
use warnings;
my @ARGV = <STDIN>;
my $filename = $ARGV[0];
my $word = 0;
my %freq =();
my @wordarray;
open(FILE, $filename);
while (<STDIN>) {
if (scalar(@ARGV) > 1) {
if ($ARGV[1] eq "-i") {
my $string = $_;
$string =~ tr/A-Z/a-z/;
tr/A-Za-z/ /cs;
my @wordarray = (split(' ', lc $string));
foreach my $word (@wordarray) {
$freq{$word}++;
}
}
}
if (scalar(@ARGV) < 2) {
my $string = $_;
tr/A-Za-z/ /cs;
my @wordarray = (split(' ', $string));
foreach my $word (@wordarray) {
$freq{$word}++;
}
}
}
foreach $word (sort keys %freq) {
print "$word $freq{$word}\n";
}
close(FILE);
请使用帮助了解如何格式化代码。 – Gene
您确实需要了解如何布置代码以使其清晰易读,并使用Stack Overflow的* markdown *将代码区分为代码。您不应该在语句之间留下空行来阻止它们进行包装。这次我为你做了,但请做一些阅读 – Borodin