Perlを使用してメッセージ内の文字の出現頻度を計算したいと思います。たとえば、char "a"がメッセージに10回出現する場合、頻度は10になります。これを行うには、getc関数を使用して一度に1文字ずつFILEからメッセージを読み取ります。これが私が書いたスニペットです。それは非常に基本的なことです、私は知っています。しかし、コンパイルすると、エラーが発生します。
詳細:
#!/usr/bin/perl
use strict;
use warnings;
my $input=$ARGV[0];
open(INPUT,"<$input");
while(<INPUT>
{
my $c=getc(INPUT);
print $c."\n";
}
close(INPUT);
コンパイルしようとすると、次のエラーが発生します。
Use of uninitialized value in print at AccessChar.pl line 13, <INPUT> line 1.
このスクリプトの何が問題なのか理解できません。誰かがこれを手伝ってくれませんか?
getc
の代わりにINPUTを使ってみgetc(INPUT)
ました。このスクリプトの実行中に他のパッケージを含める必要はないと思います。