« チーズでワイン | main | Plaggerで特定mixiコミュのトピック最新書き込みを取得 »

言語を学ぶ為に

プログラミング言語の話です。
ねぎぽは基本的にPerlerです。このところRubyを触る必要性にかられていてその為にはてブしてたサイトがあるんだ。
新しいプログラミング言語を習得するための15の方法
今日30分ぐらい時間が出来たのでいくつか組もうと思った。ざっと見た所文字列操作は使うだろうし多くて良し、配列操作もいいけどやけに数値処理が多いなみたいなことを考えつつ、書きはじめてみていきなり詰まった挙げ句驚愕の事実に気づいた。

課題1. 無限ループ内に1,2,3,...を出力させ、このループを特定のキー入力で止める。

・・・キーボードイベントってPerlでどう見るの?
Perl/Tkでそう言うの昔組んだことあるけど、えーと、無理だろこれ。ねぎぽはPerlの習得を諦めました。
誰かRubyでやってよこれ。

トラックバック

このエントリーのトラックバックURL:
http://polog.org/mt-tb.cgi/324

コメント (3)

Event.pm

これ使ったら、完全ではないけれど一応はできました。

ただ、例えばqを終了キーにしても、qを打った後にenterを押さないといけないから完全にイベント見てる気にはなりませんが。。


use Event qw{loop unloop};
our $count = 0;

Event->io(fd => \*STDIN,
timeout => 1,
poll => 'r',
repeat => 1,
cb => sub {
my $e = shift;
my $got = $e->got;
my $buf;
$count++;
print "$count\n";
if ($got eq 'r') {
if ( sysread(STDIN, $buf, 80)){
unloop('ok') if $buf =~ /q/i;
}
}
else {
}
}
);
my $ret = loop();

よくこんな意味の分からないの見つけて来たな。。何に使うんだろう。想像がつかない。
でも結局標準入力渡すスタイルになるだろうし、そうするとReturnの打鍵は避けられないよね。STDINの区切り文字を書き換えられたりしないのかな、と思って perl -e '$/="q";$a=;print $a'してみたらちょう面白い動きになったよ!やってみて!

関係ないけどこれ
http://search.cpan.org/dist/WWW-Mechanize/
触ったことあるよね、多分。テラ便利じゃね?もうLWP::UserAgentとか使う気しないんだけどコレ使ってると阿呆になる気がする。

コメントを投稿

Powered by
Movable Type 3.34