標準入力
スカラ変数への代入
普通に使うと、改行も値に入るのでそこは注意。
$name = <STDIN>;
print "Your name is $name";
STDINを使わなくてもOK。これでも↑と同じ動きになる。
$name = <>;
print "Your name is $name";
chop と chomp
chopは、文字列の最後の文字を削除する。
$name = <STDIN>; # For example, input abc.
chop($name);
print $name, "\n"; # print abc;
chop($name);
print $name, "\n"; # print ab;
chompは、文字列の最後の文字が改行文字であった場合に削除を実施する。
$name = <STDIN>; # For example, input abc.
chomp($name);
print $name, "\n"; # print abc;
chomp($name);
print $name, "\n"; # print abc;
read
指定ファイルハンドルから読み込んで、バッファに値を格納する。
読み込んだバイト数 = read(ファイルハンドル, バッファ用変数, 読み込むバイト数);
例えば、
print "What's your name??\n"
$readsize = read(STDIN, $name, 10);
printf ("Your name is %s\n", $name);
printf ("Read size is $d\n", $readsize);
ちなみに読込量まで達しない状態で、入力を切るには、標準入力で Ctrl-Dが必要。
getc
指定したファイルハンドルから読み込んで、1文字だけ扱う。
print "Type 'y' or 'n': ";
$answer = getc;
if ($answer eq 'y') {
print "Your answer is YES.\n";
} elsif ($answer eq 'n') {
print "Your answer is NO.\n";
} else {
print "Your answer is incorrect.\n";
}
配列への代入
スカラと変わらない感じで書く。
@lines = <STDIN>;
print @lines, "\n";
配列の要素としては、各行が1要素になる。このとき改行文字も含まれています。
最終更新:2011年07月17日 19:44