ここもまだまだ簡単。
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件) を見る