免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1662 | 回复: 9
打印 上一主题 下一主题

不是很理解AnyEvent中io [复制链接]

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-07-04 15:27 |只看该作者 |倒序浏览
  1. use AnyEvent;
  2. $| = 1; print "enter your name> ";
  3. my $name;
  4. my $name_ready = AnyEvent->condvar;
  5. my $wait_for_input = AnyEvent->io (
  6.    fh   => \*STDIN,
  7.    poll => "r",
  8.    cb   => sub {
  9.       $name = <STDIN>;
  10.       $name_ready->send;
  11.    }
  12. );
  13. say $_ for 0..10;
  14. # do something else here
  15. # now wait until the name is available:
  16. $name_ready->recv;
  17. undef $wait_for_input; # watcher no longer needed
  18. print "your name is $name\n";什么时候执行呢?
复制代码
不是很理解send,recv,该写在什么位置呢?

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2013-07-04 15:40 |只看该作者
顶起啊 同求

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-07-04 22:12 |只看该作者
别顶了,花时间看看文档,看看send和recv分别是干什么的就知道该怎么用了
文档看一遍如果没明白就看第二遍,第三遍,以此类推,直到明白

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
4 [报告]
发表于 2013-07-05 02:15 |只看该作者
该写在什么位置呢?

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
5 [报告]
发表于 2013-07-05 09:02 |只看该作者
回复 3# py


    谁让我们鸟文不好呢悲催啊!

论坛徽章:
0
6 [报告]
发表于 2013-07-05 10:28 |只看该作者
回复 1# 只是一个红薯

大仙,AnyEvent是什么里的?



   

论坛徽章:
78
双子座
日期:2013-10-15 08:50:09天秤座
日期:2013-10-16 18:02:08白羊座
日期:2013-10-18 13:35:33天蝎座
日期:2013-10-18 13:37:06狮子座
日期:2013-10-18 13:40:31双子座
日期:2013-10-22 13:58:42戌狗
日期:2013-10-22 18:50:04CU十二周年纪念徽章
日期:2013-10-24 15:41:34巨蟹座
日期:2013-10-24 17:14:56处女座
日期:2013-10-24 17:15:30双子座
日期:2013-10-25 13:49:39午马
日期:2013-10-28 15:02:15
7 [报告]
发表于 2013-07-05 11:00 |只看该作者
The producer calls send, the consumer calls recv.

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
8 [报告]
发表于 2013-07-05 15:34 |只看该作者
模块啊回复 6# dahe_1984


   

论坛徽章:
6
卯兔
日期:2013-11-26 14:52:02丑牛
日期:2014-02-19 18:01:25卯兔
日期:2014-05-20 20:34:06白羊座
日期:2014-05-23 13:39:232015亚冠之大阪钢巴
日期:2015-08-07 20:57:582015亚冠之大阪钢巴
日期:2015-09-02 14:09:09
9 [报告]
发表于 2013-07-05 16:00 |只看该作者
本帖最后由 只是一个红薯 于 2013-07-05 16:23 编辑
  1. use AnyEvent;
  2. $|=1;
  3. my $exit=AE::cv {print "gg\n"};
  4. my $name_ready=AE::cv {
  5.     my ($cv)=@_;
  6.     print "\nHello, ".$cv->recv;
  7.     $exit->send;
  8. };
  9. my $angel=AE::io \*STDIN,0,sub {
  10.     my $x=<STDIN>;
  11.     $name_ready->send($x);
  12. };

  13. my $daemon=AE::timer 5, 5, sub {
  14.     print "\n\nHurry up!!\nEnter your name>";
  15. };
  16. print "Enter your name>";
  17. $exit->recv;
复制代码
可以执行,看来是我windows的问题,linux上没问题回复 3# py


   

论坛徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30数据库技术版块每日发帖之星
日期:2015-12-01 06:20:002015亚冠之首尔
日期:2015-11-04 22:25:43IT运维版块每日发帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27狮子座
日期:2014-05-12 11:00:00辰龙
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34IT运维版块每日发帖之星
日期:2016-01-27 06:20:0015-16赛季CBA联赛之新疆
日期:2016-06-07 14:10:01
10 [报告]
发表于 2013-07-05 22:36 |只看该作者
回复 9# 只是一个红薯


    又见AE
    雅典娜之惊叹!
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP