Hatena::Grouparaistudy

iwasekiの日記

2006-09-08

[]スカラーデータ(その4) はてなブックマーク - スカラーデータ(その4) - iwasekiの日記

if制御構造とブール値

ifは普通に使えばいいみたい。{}で囲むのを忘れずに。

問題はこれか、ブール値。

  • undefは偽
  • 数字の0は偽、それ以外の数値は真
  • 空文字列('')は偽、通常それ以外の文字列は真
  • 文字列'0'も偽

まとめると、

  • undef、0、''、'0'は偽、他は真

入力を受け取る

標準入力を受け取るには<STDIN>ってのを使うらしい。

これはやっぱりやってみるべきでしょってことで、プログラムの例を改変してみる。

#!/usr/bin/perl

$line = <STDIN>;
if ($line eq "\n"){
        print "何も入力しないつもり?!\n";
}else{
        print "べ、別にあんたのために表示するんじゃないからね!:$line";
}

意味も無くツンデレ風。勉強は楽しくやらんとね。

chomp演算子

変数の中の改行文字を削除する・・・リャマ本にも書いてあるけど特殊だね。

さっきのプログラムを書き替えてみる。

#!/usr/bin/perl

$line = <STDIN>;
chomp($line);
if ($line eq "\n"){
        print "何も入力しないつもり?!\n";
}else{
        print "$line ですって?!・・・べ、別にうれしくなんかないんだからねっ!?\n";
}

意味も無く(ry


標準入力とchompを同じ行に書くほうがスタンダードだと書いてあるので、今後は

chomp ($line = <STDIN>); #()はなくてもいいらしいよ

と書くようにする。

czk-htnczk-htn2006/09/13 06:28>標準入力とchompを同じ行に書くほうがスタンダード
そうなの?僕は↓こういうのが多いな。
while(<STDIN>){
chomp;
...hogehoge..
}