言いたいこと
画面(ターミナル)からの入力は「改行」が入っているので、 chomp
してから使いましょう。
画面(ターミナル)から文字を入力する
画面(ターミナル)から文字を入力するには、 <STDIN>
を使います。
|
|
実行すると、画面が止まってしまいますが、何が文字を入力して改行を押すと、入力した文字列がそのまま表示されると思います。
改行はわかりづらい
Perl入学式では、画面(ターミナル)からの入力値を計算するプログラムをサンプルで作ったりしていますが、画面からの入力には「改行」が含まれています。
|
|
計算式を表示しようとして、これを実行すると、
|
|
このように、改行が入って変な感じになってしまいます。
改行を削除するにはchompを使う
この改行を取り除くには、 chomp
を使います。
|
|
実行結果は以下のとおり。
|
|
ちゃんと改行が取り除かれています。
chompを使うときに注意すること
慣れてくると、変数に代入すると同時に改行を削除しようとして、こんな感じにやりたくなるんじゃないかと思います。
|
|
しかし、実行しようとするとエラーに。
|
|
これは、 chomp
が渡された値(引数)自体を変更してしまうためです。
chomp
は引数の改行を削除して値を返す関数ではなく、引数そのものを変更します。
代入と同時に改行を削除したい場合は、以下のように書くと良いです。
|
|
画面からの入力はchompで処理しましょう
画面から <STDIN>
で入力する時は、入力値に改行も含まれるので、 chomp
で改行を取り除くようにしましょう。