Drkcore

27 05 2008 perl Tweet

どう書くの「出力の一時停止と再開」をperlのthreadで

書いてみた

最初に書いたのがこれ。

use strict;
use threads;
use threads::shared;

$| = 1; 

my $f : shared;
my $ob = threads->create(\&observe);
my $pr = threads->create(\&print_a); 

$ob->join();
$pr->join();

sub observe {
 my $i;
 while(1){
   $i = <STDIN>;
   chomp($i);
   exit if $i eq 'q';
   if ($i eq 'p'){
     $f == 1 ? $f-- : $f++;
   } 
 }
}

sub print_a {
 while(1){
   if($f == 1){
     print "a";
     sleep 1;
   } 
 }
}

Term::ReadLineがよくわからなかったので、あえて使わずに書いてみたら相当ダメな感じになってしまったので、Web+DB Pressを引っ張りだしてきて書き直して投稿。

About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021