파일에서 정보를 읽고 가장 일반적으로 사용되는 단어를 분류하고 각 단어가 몇 번 사용되었는지 반환하는 사람이있었습니다. 명령 줄 인수에서 입력 한 있지만 동일한 스크립트를 실행할 가져오고 스크립트로 입력을 통해 실행되도록 파일 이름을 가져 가고 싶습니다. 내가 잘못하고있는 것을 찾을 수 없다.파일에서 가장 자주 사용되는 문자열
print "Type the name of the file: ";
chomp(my $file = <>);
open (FILE, "$file") or die;
while (<FILE>){
$seen{$_}++ for split /\W+/;
}
my $count = 0;
for (sort {
$seen{$b} <=> $seen{$a}
||
lc($a) cmp lc($b)
||
$a cmp $b
} keys %seen)
{
next unless /\w/;
printf "%-20s %5d\n", $seen{$_}, $_;
last if ++$count > 100;
}
close (FILE);
순간에 내 결과는 다음과 같습니다
15 0
15 0
10 0
10 0
10 0
5 1
5 0
5 0
5 0
5 0
내가 원하는 결과는 다음과 같습니다
<word> <number of occurances>
<word> <number of occurances>
<word> <number of occurances>
<word> <number of occurances>
<word> <number of occurances>
<word> <number of occurances>
그것은 경우에 도움이 될 거라고 말하고 싶은 이게 효과가 없다는 걸 말 했잖아요. –
이 프로그램은 여러분이 보여준 결과를 보여주지 못했습니다. '% 본'의 카운트가 0 일 수는 없습니다. 하지만 품질이 떨어지는 Perl이 아니라면 프로그램이 올바르게 작동합니다. 다른 입력 파일을 사용해보십시오 – Borodin