한 줄에 한 단어씩 포함된 텍스트 파일을 읽는 Perl 프로그램을 작성하세요. 키로 읽은 단어와 값으로 읽힌 횟수를 포함하는 해시를 만듭니다. 각 단어와 그 빈도를 인쇄하세요.
print $ARGV[0]."\n";
open (FILE,$ARGV[0]);
while ($line = <FILE>)
{
chomp($line);
if (exists($count{$line}))
{
$count{$line}++;
}
else
{
$count{$line} = 1;
}
}
while ( ($word,$occurrences) = each(%count))
{
print $word." ".$occurrences."\n";
}
open INFILE
교체 하면 안되는거 아닌가요FILE
?$count{$line}
$count
:여기서 기능은 무엇입니까? 그냥 쓸 수는 없나요$line++
?이 문장을 설명해 주실 수 있나요?
while ( ($word,$occurrences) = each(%count))
답변1
- 파일 핸들 이름에는 특별한 의미가 없습니다. 사용되지 않거나
STDOUT
파일 핸들 이름으로 사용되지STDIN
않습니다 . 와 동일하게 작동 하지만 일부는 가독성을 선호할 수도 있습니다. 파일 처리 문제에 대한 귀중한 통찰력을 얻으려면 아래 Mat의 팁을 참조하세요.STDERR
FILE
INFILE
INFILE
%count
각 단어의 발생 횟수를 저장하는 데 사용되는 해시 값입니다.- 펄독 페이지
each
여기. 기본적으로 이 줄은 해시의 키-값 쌍을 반복하고 키를 변수에 할당하고$word
해시의 키-값을 변수에 할당합니다$occurrences
.