[2.12] 練習問題5
5.プロンプトを表示して文字列と数を(別々に)読み込んで、その文字列を1行に1つずつ、数で指定された回数だけ繰り返して表示するプログラムを書いてください。
#! /usr/local/bin/perl # ex2-5 use strict; use warnings; print "文字列を入力してください\n"; chomp(my $char = <STDIN>); print "数を入力してください\n"; chomp(my $num = <STDIN>); print "$charを$num回表示します\n"; print "$char\n" x $num;
出力結果はこちら。
侮ヲ?この中途半端なエラーは何?
文字列を入力してください
fuga
数を入力してください
5
fugaを5回侮ヲします
fuga
fuga
fuga
fuga
fuga
ググってみると、Shift-JISコードでスクリプトを書くことによって起こる文字化けの模様。「侮ヲ」はなかなか良く知られたヤツのようです。
詳しくは以下を参照。
Perl Script Laboratory
http://allabout.co.jp/career/cgiperl/closeup/CU20011114A/
注意すべきは「―、ソ、構、十、申、能、予、表」の8文字。
じゃあ「表」の文字をどうやったら表示できるのか、ということについては、文字化けする文字のあとに"\"を追記すればいいみたいです。
つまり
print "$charを$num回表\示します\n";
こうすればよい。
出力結果は、
OK!
文字列を入力してください
fuga
数を入力してください
5
fugaを5回表示します
fuga
fuga
fuga
fuga
fuga