2009/03/08
Perlで書く 2009.03.08 Vol.229
===================================================================== Perlで書く 2009.03.08 Vol.229 [WAZA]一文字入力待ち http://www2u.biglobe.ne.jp/~MAS/perl/ ===================================================================== ●一文字入力待ち Term::ReadKeyやIO::Promptモジュールを使うと利用者からの一文字入力 待ちの処理を簡単に書けるようになります。 getc関数も一文字入力ですが、バッファリングの影響でEnterキーが押さ れるまで入力待ちしてしまう場合があり、これを避けるための処理(例えば stty)が必要になるのでモジュールを使う方が良いでしょう。 私の環境ではWindows XPのActive Perl上ではIO::Promptを使おうとすると Cannot write to terminal というエラーになり上手く行きませんでした。 --------------------------------------------------------------------- use strict; use warnings; use Term::ReadKey; use Time::HiRes; print "Hit Any Key.\n"; my $key; while (not defined ($key = ReadKey(-1))) { Time::HiRes::sleep(0.1); } printf "input key is [%s]\n", $key; --------------------------------------------------------------------- use strict; use warnings; use IO::Prompt; # -one_char 一文字入力 # -echo 表示文字 my $key = prompt "Hit Any Key.\n", -one_char, -echo => ''; printf "input key is [%s]\n", $key; --------------------------------------------------------------------- ●関連項目 ・getc関数 http://www2u.biglobe.ne.jp/~MAS/perl/ref/getc.html ・タイムアウト処理 http://www2u.biglobe.ne.jp/~MAS/perl/waza/timeout.html ===================================================================== ■雑記 bingo_nakanishiのPerlではじめるプログラミング言語(*1)というブログで 初心者向けのPerl入門について書かれています。手書きの図がわかりやすい です。 *1 http://d.hatena.ne.jp/bingo_nakanishi/20081001 ===================================================================== Perlで書く(マガジンID:0000109251) 配信数:858 発行者:MAS 本メールマガジンに関するご意見・お問い合わせは t-masuda@mvd.biglobe.ne.jp までお寄せ下さい。 解除 http://www2u.biglobe.ne.jp/~MAS/perl/magazine.html 検索 http://www2u.biglobe.ne.jp/~MAS/perl/search/index.html バックナンバー http://archive.mag2.com/0000109251/index.html RSS http://archive.mag2.com/0000109251/rss10.xml 本メールマガジンは「まぐまぐ」 http://www.mag2.com/ を利用して発行 しています。 =====================================================================



