コネクションの確立に関する部分はNet::Server::PreFork.pmに頼る。
ithreadsの利用は労力に見合わないと判断。誰かが私と同じ無駄をしないために備忘録。
これは割と有名なのね。知らなかった…。Win32から非ブロックソケットを利用するモジュールもあります。後で参考リンクあげときます。
これはthreadsおよびthreads::sharedのドキュメントを読めば書いてあるのですが、一応。
my $cgi : shared = CGI->new; # error!
非共有のハッシュリファレンスは代入できない。だから
our @obj : shared; my $cgi = CGI->new; push @obj, $cgi; # error!
これもだめ。次に
$cgi = CGI->new; # 共有じゃない share($cgi); # その後共有に push @obj,$cgi;
これはできる。けれども、blessされていないただのハッシュリファレンスになる。しかもハッシュのキーと値の挙動はとんでもないものに(共有された本体のオブジェクトのメソッド呼び出しに応じて変わってしまう!)。 まあ、他スレッドに伝搬しないというのはドキュメントに書いてあるとおりです。
まだ構想段階…
MESSAGE ::= COMMAND (S VALUE)? (S COMMENT)? CRLF INFORM ::= DATA CRLF COMMAND ::= [a-zA-Z_]{1,15} S ::= [\t\s]+ VALUE ::= [0-9a-zA-Z]+ COMMENT ::= [0-9a-zA-Z]* ENDMARK ::= ',' DATA ::= 16進数*
userdata.xml こんな感じ?