MS Windows で Strawberry Perl 5.14.2 を使用しています。次のコードは、Linux Perl 5.10.1 では問題なく動作しますが、MS Windows では失敗します。両方で実行するには、更新する必要があります。
sub read_dict {
open F, "<:utf8", "$dictfile" || die "Dictonary file $dictfile not found";
while (<F>) {
chomp;
s/^ *//;
split;
$freq{$_[1]} = $_[0];
$header = substr($_[1],0,$wd);
if ($freq{"m,$header"}) {
if ($freq{"m,$header"} < length($_[1])) {
$freq{"m,$header"} = length($_[1]);
}
} else {
$freq{"m,$header"} = length($_[1]);
}
$freq{total} += $_[0];
}
close(F);
}
MS Windows で $dictfile を見つけて解析しますが、$freq{total} の蓄積に失敗し、他の場所でゼロ除算エラーが発生します。$dictfile は、次のようなデータを含む加重辞書です。
8 永垂不朽
8 震耳欲聋
85 罗马里奥
891 澳大利亚
9 埃芬贝格
2 つのプラットフォーム間のトラブルシューティングでは、分割時に失敗することが示されています。または次の行ですが、それを修正するのに十分な Perl を知りません。コードを変更する必要がありますか、それとも特定のコマンドライン オプションで Perl を起動する必要がありますか?
ありがとう。