アプリ版:「スタンプのみでお礼する」機能のリリースについて

あらかじめ作った英語のテキストファイルを入力し、
文字数をカウントするプログラム(perl言語)でつくっています。
あらかたできたと思うのですが、
明らかに100文字以上あるにも関わらず
なぜか3文字とカウントされます。
どこが不具合がわかる方いましたら
よろしくお願いいたします。

以下が問題のプログラムです。

print"読み込むファイル名を入力してください。\n";
$input_file = <STDIN>;

open(INPUT, "$input_file") or die "$!";

sub count_words{
my @ words = split(/\W+/,$_[0]);
my $num_words=@ words;
}

$num_words = &count_words($input_file);
print"単語数は$num_wordsです。";

close(INPUT);

A 回答 (2件)

> split(/\W+/,$_[0]);



単語を構成しない文字列を区切りにして分割します。
よって、「文字数」にはなりません。

> print"単語数は$num_wordsです。";
って書いてるし。

> &count_words($input_file);

すでに回答がありますが、これは変数$input_fileの中身(おそらくファイル名)の単語数を数えるものです。
ファイルの単語数を数えるには、ファイルの中身を読み込む必要があります。

この回答への補足

書き方間違えていました。
今回出すのは『単語数』です。
申し訳ございません。

補足日時:2011/12/27 00:25
    • good
    • 0

ファイルはどこで読み込ませているつもり?

この回答への補足

perlというファイルを作り、
そのなかにコマンドプロンプトや、つくったプログラムを保存しています。
同様にあらかじめ『英文.pl』という英文の書いたファイルをつくり保存してます。
このプログラムを実行する際、『英文.pl』と打ち込んで動かしています。

全く知識のない状態から授業で短期でやっていたので
説明が曖昧になってしまい申し訳ございません。
他に質問ありましたら、お答えします。

補足日時:2011/12/27 00:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!