ここもまだまだ簡単。
5-1 名前を入力してそれに対応した姓を出力する
use strict;
my %nameset = (
"akari" => "mizunashi",
"aika" => "granzchesta",
"alice" => "carroll"
);
print "input a name: ";
chomp(my $name = <STDIN>);
print "family name is $nameset{$name}\n";実行して、"akari"と入力してみると、
$ ./ex5-1.pl input a name: akari family name is mizunashi
となってうまくいった。解答によるとchompではじめて現れた変数にmyしたりするのは良くあることらしいので、安心。
5-2 テキスト中に現れる単語の数を数える
単語は改行区切りですよ。以下のような内容のwords.txtを用意した。
haruhi mikuru yuki yuki haruhi kyon haruhi mikuru
そして、書いたプログラムはつぎのようなの。
use strict;
chomp(my @lines = <STDIN>);
my %words;
foreach (@lines) {
$words{$_} += 1;
}
foreach my $word (sort keys %words) {
print "$word: $words{$word}\n";
}また、変なとこにmyがある気がするが、これも大ジョブにちがいない。結果は、
$ cat words.txt | ./ex5-2.pl haruhi: 3 kyon: 1 mikuru: 2 yuki: 2
おうらい、おうらい。
しかし、まだ基本的な内容というのに進みが遅いなぁ。書く必要のなさそうなとこはどんどん抜かしちゃおうかしらね。
- 作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪
- 出版社/メーカー: オライリージャパン
- 発売日: 2003/05
- メディア: 単行本
- 購入: 15人 クリック: 474回
- この商品を含むブログ (294件) を見る