2010年12月25日星期六

Re: [PerlChina] 请问Dancer是否能够支持Thread

something like this may help:
http://blogs.perl.org/users/mstplbg/2010/12/using-anyevent-and-dancer.html
http://blogs.perl.org/users/mstplbg/2010/12/anyevent-and-dancer-condvars.html

anyway, I didn't try fork or Coro in Dancer so I can't tell a solution.
but from the comment, the Dancer author Sawyer did fork in Dancer. so
you may want to send an email to dancer mailing list:
http://lists.perldancer.org/cgi-bin/listinfo/dancer-users

Thanks

On 2010/12/26 13:10, JohnTeee wrote:
> 小弟最近才开始用Dancer,在win32下用StandAlone方式运行
> 然而发现若用内建的fork,以及CPAN上的Coro模块都不能正常运行
> 是否要用CGI的方式来运行,才能够同时运行两个App?
> 会需要这样的功能,是因为:
> 若一个request进来,呼叫外部指令等待时间过久,
> 同时有其它使用者等待被服务,那么就会卡住--->直到第一个request完成
> 有前辈也遇过同样的问题吗?
>


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 请问Dancer是否能够支持Thread

小弟最近才开始用Dancer,在win32下用StandAlone方式运行
然而发现若用内建的fork,以及CPAN上的Coro模块都不能正常运行
是否要用CGI的方式来运行,才能够同时运行两个App?
会需要这样的功能,是因为:
若一个request进来,呼叫外部指令等待时间过久,
同时有其它使用者等待被服务,那么就会卡住--->直到第一个request完成
有前辈也遇过同样的问题吗?

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月24日星期五

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

我觉得有了 PSGI 后,这一切都不是问题。
你可以这个部分用 Mojolicious::Lite 写,这个部分用 Dancer 写。最后2个都用 PSGI,分别对应不同的 url
部分。甚至你可以将 Catalyst 也用 PSGI Engine, 对应到某部分 url

甚至你可以对他们用上 Plack 的 middleware

我总觉得这是殊途同归的。重要的还是怎么构架你的代码结构。怎么样更
clean,更容易测试,更容易在不同的地方使用,更少重复的代码,这才是关键所在。框架的风格其实并不重要。

Thanks

2010/12/24 cnhack TNT <cnhacktnt@gmail.com>:
> 都挺ok的,用来快速开发小巧的应用,或是做嵌入,直接用 Mojolicious::Lite 就够了,没有额外过多的依赖
> Dancer 也很赞,如果是做产品,我会考虑 Dancer
>
> 2010/12/24 rob <robcheung@gmail.com>
>>
>>
>> 2010/12/24 cnhack TNT <cnhacktnt@gmail.com>
>> >
>> > 文章已经同步到: http://advent.perlchina.org/2010/websocket.html
>> > 原文在:https://github.com/cnhacktnt/advent.perlchina.org/tree/master/2010
>> > 感谢各位作者和观众 :-)
>>
>>
>> Mojolicious 和 Dancer 很相似啊。
>> 哪个更成熟?
>>
>> --
>> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
>> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
>> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>

--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

都挺ok的,用来快速开发小巧的应用,或是做嵌入,直接用 Mojolicious::Lite 就够了,没有额外过多的依赖

Dancer 也很赞,如果是做产品,我会考虑 Dancer

2010/12/24 rob <robcheung@gmail.com>


2010/12/24 cnhack TNT <cnhacktnt@gmail.com>
>
> 文章已经同步到: http://advent.perlchina.org/2010/websocket.html
> 原文在:https://github.com/cnhacktnt/advent.perlchina.org/tree/master/2010
> 感谢各位作者和观众 :-)


Mojolicious 和 Dancer 很相似啊。
哪个更成熟?


--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket



2010/12/24 cnhack TNT <cnhacktnt@gmail.com>
>
> 文章已经同步到: http://advent.perlchina.org/2010/websocket.html
> 原文在:https://github.com/cnhacktnt/advent.perlchina.org/tree/master/2010
> 感谢各位作者和观众 :-)


Mojolicious 和 Dancer 很相似啊。
哪个更成熟?

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月23日星期四

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

HTML5  支持的 websocket 很有意思呀

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

真心希望大家能从中有所收获,感谢 :-)

2010/12/24 Hao Wu <echowuhao@gmail.com>
一直想说些什么。我是因为今年的把09年的也看了,也找了perl主站上的看了看。觉得perl及perl的社区很有意思。只是还是初学者,更多的是仰望。感谢有 perl 精神的贡献者。

2010/12/24 cnhack TNT <cnhacktnt@gmail.com>
好奇有多少人看过这些文章,有多少人从中了解到了有意思的东西

2010/12/24 Qiang (James) <shijialee@gmail.com>

On 12/24/2010 11:03 AM, Fayland Lam wrote:
> That's ALL for this year's advent. Thanks for you all, esp. to
> cnhackTNT, joejiang and agentzh.
>
> and Merry Xmas!

thank all for another run of advent!

Qiang

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

一直想说些什么。我是因为今年的把09年的也看了,也找了perl主站上的看了看。觉得perl及perl的社区很有意思。只是还是初学者,更多的是仰望。感谢有 perl 精神的贡献者。

2010/12/24 cnhack TNT <cnhacktnt@gmail.com>
好奇有多少人看过这些文章,有多少人从中了解到了有意思的东西

2010/12/24 Qiang (James) <shijialee@gmail.com>

On 12/24/2010 11:03 AM, Fayland Lam wrote:
> That's ALL for this year's advent. Thanks for you all, esp. to
> cnhackTNT, joejiang and agentzh.
>
> and Merry Xmas!

thank all for another run of advent!

Qiang

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

至少我现在坚持在用 cpanm 装所有的复杂模块 :D
By sharing we practice the listening ... Thanks all for the sharing.

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

好奇有多少人看过这些文章,有多少人从中了解到了有意思的东西

2010/12/24 Qiang (James) <shijialee@gmail.com>
On 12/24/2010 11:03 AM, Fayland Lam wrote:
> That's ALL for this year's advent. Thanks for you all, esp. to
> cnhackTNT, joejiang and agentzh.
>
> and Merry Xmas!

thank all for another run of advent!

Qiang

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

On 12/24/2010 11:03 AM, Fayland Lam wrote:
> That's ALL for this year's advent. Thanks for you all, esp. to
> cnhackTNT, joejiang and agentzh.
>
> and Merry Xmas!

thank all for another run of advent!

Qiang

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

That's ALL for this year's advent. Thanks for you all, esp. to
cnhackTNT, joejiang and agentzh.

and Merry Xmas!

On 2010/12/24 10:30, cnhack TNT wrote:
> 文章已经同步到: http://advent.perlchina.org/2010/websocket.html
>
> 原文在:https://github.com/cnhacktnt/advent.perlchina.org/tree/master/2010
>
> 感谢各位作者和观众 :-)
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"
> 论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN
> 访问此网上论坛。


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 2010 Perl Advent Day 24: Mojolicious::Lite 和 WebSocket

文章已经同步到: http://advent.perlchina.org/2010/websocket.html


感谢各位作者和观众 :-)

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月22日星期三

[PerlChina] 2010 Perl Advent Day 23: XML::XSH2

=for advent_year 2010

=for advent_day 23

=for advent_title XML::XSH2

=for advent_author Joe Jiang

XML::XSH2 这个模块是用来实现类似 XSLT 功能的一个 Shell,可以用来很方便的操作 XML 文件。

=begin pre

$ xsh
---------------------------------------
 xsh - XML Editing Shell version 2.1.1
---------------------------------------

Copyright (c) 2002 Petr Pajas.
This is free software, you may use it and distribute it under
either the GNU GPL Version 2, or under the Perl Artistic License.
Using terminal type: Term::ReadLine::Perl
Hint: Type `help' or `help | less' to get more help.

$scratch/>

=end pre

在登录 Shell 以后,可以打开一个 XML 文件:


=begin pre

$scratch/>$x:=open chat.xml
parsing chat.xml
done.

$x/>ls Log/Message | cat > /dev/null

Found 31 node(s).

=end pre

如此就有了一个可以操作的对象,这里打开的是 MSN 聊天记录导出的 XML 文件。可以看到其中有 31 条聊天记录,为了保护隐私,用了 shell 转向过滤掉了。

然后,可以用 XPath 语法来查询聊天记录内容,比如我们已经知道第 12 条聊天记录是感兴趣的,可以发现它对应的会话编号:

=begin pre

$x/>ls Log/Message[12]/@SessionID
SessionID='2'

=end pre

那么,现在,我们可以调查整个 2 号会话的内容:

=begin pre

$x/>ls Log/Message[@SessionID="2"] | cat > /dev/null

Found 22 node(s).

$x/>ls Log/Message[@SessionID="2"]/Text/text() | grep -i for-ssh

Found 24 node(s).

=end pre

这样,我们就发现了 2 号会话中有 22 条聊天记录,其中有一条是关于 ssh -d 的网址。

这些命令还可以存储为脚本:

=begin pre

$ cat convert.xsh
$x:=open ArticleInfo_9.xml;
$y:=new html;
xadd element "<head/>" into $y/html;
xadd element "<title/>" into $y/html/head;
xadd element "<body/>" into $y/html;
xadd element "<img/>" into $y/html/body;
xadd text $x//小样/标题/text() into $y/html/head/title;
xadd text $x//小样/内容/text() into $y/html/body;
xadd text $x//小样/附图/简图/文件名/text() into $y/html/body/img;
ls $y;

$ xsh -q convert.xsh > abc.html

$ cat abc.html
<?xml version="1.0" encoding="utf-8"?>
<html>
  <head>
    <title>第一推荐</title>
  </head>
  <body><img>../cnmlfiles/A01/A01Ab25C005_b.jpg</img>  华为美国拓展求解
  华为对美国市场的执着显示出中国企业走出去的急切需要,但这样高调注定要经受更多挫折。</body>
</html>

=end pre

这样以后你操作起 XML 来,就会感觉很方便了,不是么?谢谢 Petr Pajas!

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] Re: 有熟悉 mod_perl 的兄弟么

于 2010-12-23 8:44, Ben 写道:
> 最近在基于 mod_perl 做一个应用。mod_perl 在一个 location 里面可以有多个 handler,我现在用到的是
> > PerlResponseHandler 和 PerlLogHandler 有方法可以在这些 handler 之间传递数据么?

有的。不过我也忘记了,:)


> >
> > 另外,好像每个 req 过来,mod_perl 都是会执行整个 pm 里面的内容,而不止 sub handler 里面的,是么?

会执行整个pm里的内容,但handler外的只在apache进程启动时执行一次,而
handler是重复执行。
通常利用这点构造闭包,打个比方:

package ABC;
my $handle = Some::Event->new;

sub handler {
if ($handle) {
do something
} else {
$handle = Some::Event->new;
}
}

1;

此时$handle作用相当于一个包变量,它只在apache进程启动时初始化一次,节省
调用开销(例如这个 Some::Event->new是某某DB或文件操作)。

Regards.

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] Re: 有熟悉 mod_perl 的兄弟么

高深

On Dec 22, 10:43 am, wd <w...@wdicc.com> wrote:
> hi,
>
> 最近在基于 mod_perl 做一个应用。mod_perl 在一个 location 里面可以有多个 handler,我现在用到的是
> PerlResponseHandler 和 PerlLogHandler 有方法可以在这些 handler 之间传递数据么?我现在用的方法很土,是设置
> %ENV 来把数据从 Resp 传给 log。
>
> 另外,好像每个 req 过来,mod_perl 都是会执行整个 pm 里面的内容,而不止 sub handler 里面的,是么?
>
> 还有我用 PerlSwitches -I/xxx/xx 这个 apache 的配置怎么总是不起作用?

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月21日星期二

Re: [PerlChina] 有熟悉 mod_perl 的兄弟么

嗯。感谢。
用notes 试了半天没弄出来,不知道哪里的问题。
Usage: Apache2::RequestRec::notes(obj, val=NULL) at /www/a.pm line 72

我就是 $r->notes( 'a' => 'b' ); 这样用的。

后来改用 pnotes 就好了。


在 2010年12月22日 上午10:51,Fayland Lam <fayland@gmail.com>写道:
http://modperlbook.org/html/18-2-Sharing-Data-Between-Various-Handlers.html

pnotes 用的比较多吧

On 2010/12/22 10:43, wd wrote:
> hi,
>
> 最近在基于 mod_perl 做一个应用。mod_perl 在一个 location 里面可以有多
> 个 handler,我现在用到的是 PerlResponseHandler 和 PerlLogHandler 有方
> 法可以在这些 handler 之间传递数据么?我现在用的方法很土,是设置 %ENV
> 来把数据从 Resp 传给 log。
>
> 另外,好像每个 req 过来,mod_perl 都是会执行整个 pm 里面的内容,而不止
> sub handler 里面的,是么?
>
> 还有我用 PerlSwitches -I/xxx/xx 这个 apache 的配置怎么总是不起作用?
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"
> 论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN
> 访问此网上论坛。


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。


--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 2010 Perl Advent Day 22: DBM::Deep

=for advent_year 2010

=for advent_day 22

=for advent_title DBM::Deep

=for advent_author Joe Jiang

DBM::Deep 这个模块是用 Perl 实现的一种数据存储引擎,对 Perl 的数据结构(哈希和数组)有着良好的支持。作者完全 Perl 代码实现,因此对其他库程序和模块没有什么依赖。

=begin pre

$ apt-cache depends libdbm-deep-perl
libdbm-deep-perl
  Depends: perl

$ apt-cache rdepends libdbm-deep-perl
libdbm-deep-perl
Reverse Depends:
  libipc-pubsub-perl

$ apt-cache rdepends libipc-pubsub-perl
libipc-pubsub-perl
Reverse Depends:
  libjifty-perl

=end pre

以上显示它单单依赖于 Perl 本身。另外还发现,这个基础模块还被 Jifty 引用了。实际使用非常简单:

=begin pre

$ perl -MDBM::Deep -F: -lane 'BEGIN{$db = DBM::Deep->new(q(passwd.db))} $db->{$F[0]}=[@F]' /etc/passwd

$ perl -MDBM::Deep -le '$db=DBM::Deep->new(q(passwd.db)); print for grep {$db->{$_}->[-1] eq q(/bin/false)} sort keys %$db' | head -3
avahi
avahi-autoipd
dictd

=end pre

以上的两行代码,分别实现了数据文件的创建,以及数据的查询(头三个不允许登录的 login name)。欢迎使用,感谢 Joseph(作者)和 Rob(维护者)!

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 有熟悉 mod_perl 的兄弟么

http://modperlbook.org/html/18-2-Sharing-Data-Between-Various-Handlers.html

pnotes 用的比较多吧

On 2010/12/22 10:43, wd wrote:
> hi,
>
> 最近在基于 mod_perl 做一个应用。mod_perl 在一个 location 里面可以有多
> 个 handler,我现在用到的是 PerlResponseHandler 和 PerlLogHandler 有方
> 法可以在这些 handler 之间传递数据么?我现在用的方法很土,是设置 %ENV
> 来把数据从 Resp 传给 log。
>
> 另外,好像每个 req 过来,mod_perl 都是会执行整个 pm 里面的内容,而不止
> sub handler 里面的,是么?
>
> 还有我用 PerlSwitches -I/xxx/xx 这个 apache 的配置怎么总是不起作用?
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"
> 论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至
> perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN
> 访问此网上论坛。


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 有熟悉 mod_perl 的兄弟么

hi,

最近在基于 mod_perl 做一个应用。mod_perl 在一个 location 里面可以有多个 handler,我现在用到的是 PerlResponseHandler 和 PerlLogHandler 有方法可以在这些 handler 之间传递数据么?我现在用的方法很土,是设置 %ENV 来把数据从 Resp 传给 log。

另外,好像每个 req 过来,mod_perl 都是会执行整个 pm 里面的内容,而不止 sub handler 里面的,是么?

还有我用 PerlSwitches -I/xxx/xx 这个 apache 的配置怎么总是不起作用?

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月20日星期一

Re: [PerlChina] 2010 Perl Advent Day 13: PDF::API2

Thanks for the sharing.

2010/12/20 joe jiang <lamp.purl@gmail.com>:
> Sorry, it should be Day 21 in the mail subject. Christmas is so near now ...
> 2010/12/20 joe jiang <lamp.purl@gmail.com>
>>
>> =for advent_year 2010
>>
>> =for advent_day 21
>>
>> =for advent_title PDF::API2
>>
>> =for advent_author Joe Jiang
>>
>> PDF::API2 是久负盛名的 PDF 处理利器,我们这里演示的是如何用它来追踪 PDF 侵权的用户。
>> =begin pre
>>
>> #!/usr/bin/perl -w
>>
>> use strict;
>>
>> use PDF::API2;
>>
>> my $file=PDF::API2->openScalar(do{join(q(),<STDIN>)});
>>
>> my $font=$file->corefont(q(Courier));
>>
>> do {my $t=$_->text; $t->font($font, 8); $t->fillcolor(q(white));
>> $t->translate(40,10); $t->text(q(Hello world))} for map
>> {$file->openpage($_)} 1..$file->pages;
>>
>> print $file->stringify
>>
>> =end pre
>> 这段代码能从标准输入读取 PDF 文件,只要它没有被加过密,就可以在它每一页的相对位置 40,10 处用白色字体打印 Hello World,然后用
>> stringfy 和 print 输出到标准输出。只要重定向到文件,就可以储存下来。假如我们把以上的代码储存为
>> watermark.pl,那么就可以这样调用:
>> =begin pre
>> $ cat abc.pdf | ./watermark.pl > def.pdf
>> =end pre
>> 现在,因为大多数的 PDF 是用白色作为背景色,那么页脚处的 Hello world
>> 就不容易被发现,然后你可以在网上设置一个收索机器人,专门搜索内含此字的 PDF
>> 文件,那就是被人盗用的。如果其中加入用户的帐号、下载日期等等,就可以用来作为追诉的依据。Thanks Alfred & the community!
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>

--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 13: PDF::API2

Sorry, it should be Day 21 in the mail subject. Christmas is so near now ...

2010/12/20 joe jiang <lamp.purl@gmail.com>
=for advent_year 2010

=for advent_day 21

=for advent_title PDF::API2

=for advent_author Joe Jiang

PDF::API2 是久负盛名的 PDF 处理利器,我们这里演示的是如何用它来追踪 PDF 侵权的用户。

=begin pre


#!/usr/bin/perl -w

use strict;

use PDF::API2;


my $file=PDF::API2->openScalar(do{join(q(),<STDIN>)});

my $font=$file->corefont(q(Courier));

do {my $t=$_->text; $t->font($font, 8); $t->fillcolor(q(white)); $t->translate(40,10); $t->text(q(Hello world))} for map {$file->openpage($_)} 1..$file->pages;

print $file->stringify


=end pre

这段代码能从标准输入读取 PDF 文件,只要它没有被加过密,就可以在它每一页的相对位置 40,10 处用白色字体打印 Hello World,然后用 stringfy 和 print 输出到标准输出。只要重定向到文件,就可以储存下来。假如我们把以上的代码储存为 watermark.pl,那么就可以这样调用:

=begin pre

$ cat abc.pdf | ./watermark.pl > def.pdf

=end pre

现在,因为大多数的 PDF 是用白色作为背景色,那么页脚处的 Hello world 就不容易被发现,然后你可以在网上设置一个收索机器人,专门搜索内含此字的 PDF 文件,那就是被人盗用的。如果其中加入用户的帐号、下载日期等等,就可以用来作为追诉的依据。Thanks Alfred & the community!

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

[PerlChina] 2010 Perl Advent Day 13: PDF::API2

=for advent_year 2010

=for advent_day 21

=for advent_title PDF::API2

=for advent_author Joe Jiang

PDF::API2 是久负盛名的 PDF 处理利器,我们这里演示的是如何用它来追踪 PDF 侵权的用户。

=begin pre


#!/usr/bin/perl -w

use strict;

use PDF::API2;


my $file=PDF::API2->openScalar(do{join(q(),<STDIN>)});

my $font=$file->corefont(q(Courier));

do {my $t=$_->text; $t->font($font, 8); $t->fillcolor(q(white)); $t->translate(40,10); $t->text(q(Hello world))} for map {$file->openpage($_)} 1..$file->pages;

print $file->stringify


=end pre

这段代码能从标准输入读取 PDF 文件,只要它没有被加过密,就可以在它每一页的相对位置 40,10 处用白色字体打印 Hello World,然后用 stringfy 和 print 输出到标准输出。只要重定向到文件,就可以储存下来。假如我们把以上的代码储存为 watermark.pl,那么就可以这样调用:

=begin pre

$ cat abc.pdf | ./watermark.pl > def.pdf

=end pre

现在,因为大多数的 PDF 是用白色作为背景色,那么页脚处的 Hello world 就不容易被发现,然后你可以在网上设置一个收索机器人,专门搜索内含此字的 PDF 文件,那就是被人盗用的。如果其中加入用户的帐号、下载日期等等,就可以用来作为追诉的依据。Thanks Alfred & the community!

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Re: [PerlChina] 2010 Perl Advent Day 12: Dancer

http://advent.perlchina.org/2010/Dancer.html

=for advent_year 2010

=for advent_day 20

=for advent_title Dancer

=for advent_author Fayland Lam

M<Dancer> 应该是本年度最值得推荐的模块之一。

Perl 的世界一向是百花齐放,There is more than one way to do it. MVC 框架也不例外,从最早的
Maypole 到完整的 M<Catalyst>, 从 M<Jifty>, M<Mojo>, M<CGI::Application>,
M<Web::Simple> 到 M<WebNano>, M<Dancer> 绝对是我试过的最棒的轻量级框架(个人浅见,请勿攻击)。

所有的框架都有命令行创建新的 app,M<dancer> 也不例外。

=begin pre

$ dancer -a MyExcitingApp
+ MyExcitingApp
+ MyExcitingApp/bin
+ MyExcitingApp/bin/app.pl
+ MyExcitingApp/config.yml
+ MyExcitingApp/environments
+ MyExcitingApp/environments/development.yml
+ MyExcitingApp/environments/production.yml
+ MyExcitingApp/views
+ MyExcitingApp/views/index.tt
+ MyExcitingApp/views/layouts
+ MyExcitingApp/views/layouts/main.tt
+ MyExcitingApp/lib
MyExcitingApp/lib
+ MyExcitingApp/lib/MyExcitingApp.pm
+ MyExcitingApp/public
+ MyExcitingApp/public/css
+ MyExcitingApp/public/css/style.css
+ MyExcitingApp/public/css/error.css
+ MyExcitingApp/public/images
+ MyExcitingApp/public/500.html
+ MyExcitingApp/public/404.html
+ MyExcitingApp/public/dispatch.fcgi
+ MyExcitingApp/public/dispatch.cgi
+ MyExcitingApp/public/javascripts
+ MyExcitingApp/public/javascripts/jquery.js
+ MyExcitingApp/Makefile.PL
+ MyExcitingApp/t
+ MyExcitingApp/t/002_index_route.t
+ MyExcitingApp/t/001_base.t

=end pre

初看并无新奇之处,如同所有的框架类似,运行 perl bin/app.pl 你就可以访问 http://localhost:3000/ 了。

但是如果你想写一些你自己的东西的话,你就会发现它是非常的简洁。

它不像 Catalyst,所有的 sub 都有 $self, $c, 获取 param 就是简单的 params->{xxxx};
redirect 就是 redirect $url, 转为 json 格式就是简单的 to_json( { love => ['Perl']
} ); 不用在每个函数前面写上 $c->req $c->res,你所有的输入都是有用的。

你所有的代码通常都只需要在这个 pm 主文件里。当然你也可以通过 load 或者 load_app 来载入其他文件。

另外值得一说的是 dancer 的 routue, any, get, post 和简单的正则可以满足大部分需求,你无需知道 Local
或者其他的 URL dispatch 语法。

Dancer 的 deploy 基于 M<Plack>, 这意味着你几乎可以 deploy 到任何你想 deploy
的地方,你还可以将它合并到任何基于 Plack 的 app 里。你还可以使用不同的 handle 如

=begin pre

$ plackup -s Twiggy -p 3000 bin/app.pl

=end pre

它还意味着你可以使用丰富多样的 Plack middleware 如 M<Plack::Middleware::Debug::DBIProfile> 等。

Dancer 的 one line start 也非常优雅:

=begin pre

$ perl -MDancer -e 'get "/hello" => sub{"world"}; dance'

=end pre

当然,Dancer 对初学者也有不便之处,比如它的默认 Template 不是 TT2,比如它在 development mode 下会将
warnings 作为 critic 错误直接报错(将 development.yml 里的 warnings 设置为
0)等等。但是这并不妨碍它是轻量级框架中我最喜欢的。

简单的介绍当然是一点都不过瘾,Dancer 在本年度做了 advent:
A<http://advent.perldancer.org/2010>,非常棒,值得一看。

如果诸位有 Dancer 的任何问题,都可以直接发信到 perlchina@googlegroups.com 新闻组。我想会有志同道合的人一起讨论和进步。

谢谢。


--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

2010年12月19日星期日

[PerlChina] 2010 Perl Advent Day 19: SDL

Sorry, 刚从电影院回来,只能写一篇很短的 advent 了。还好能赶上19号,抱歉抱歉。

http://advent.perlchina.org/2010/SDL.html

=for advent_year 2010

=for advent_day 19

=for advent_title SDL

=for advent_author Fayland Lam

老实说,我对 M<SDL> 一点都不熟悉。但是这不应该成为我不推荐该模块的原因之一。

如果您对 Perl 编写游戏感兴趣,不管是 2D 还是 3D,我认为都有必要去看看该模块。

学习该模块最好的办法是阅读它的 M<SDL::Tutorial>, 然后两个非常棒的应用,M<SDL::Tutorial::Tetris>
和 Adam 的 M<SDL::Tutorial::3DWorld>。

Enjoy.

--
Fayland Lam // http://www.fayland.org/

--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。