2015-09-21 63 views
0

我想在Perl中讀取文本文件。對於每一行,我想在句子進一步處理之前將句子拆分爲它的單詞。我不確定從文件讀取時摺疊大小寫的語法。從Perl中的文本文件逐行讀取並區分每行

while ($line = <$fh>){ 
    @words = split /\s+/, $line; 
    foreach my $word (@words){ 
     $hashCounter{$word}++; 
} 
+0

'while(<$fh>){$ hashCounter {$ _} ++ for map {fc} split; };'應該這樣做。 – Sobrique

回答

1

您可以使用fc()

$hashCounter{ fc($word) }++; 

perldoc -f fc

返回EXPR的casefolded版本。這是在雙引號字符串中執行\ F轉義的內部函數。案例摺疊是將字符串映射到案例差異被刪除的表單的過程;比較兩個字符串在他們的情況下摺疊形式實際上是一種問兩個字符串是否相等的方式,無論大小寫。

+0

當我使用$ hashCounter {fc(word)} ++;我得到了「未定義的子程序和main :: fc在filename.pl行13,<$fh>行1」的錯誤。 –

+1

@SagarSamtani你的Perl比v5.16更舊。你可以使用'lc()'作爲老版本的perl。 –