2011年3月5日星期六

[PerlChina] 关于在XP下面安装模块时出现的问题?

如上图所示,我在安装Tk::StayOnTop 模块时所提示的问题,不知如何解决?
------------------
 
 

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

2011年3月4日星期五

Re: [PerlChina] Moose的extends没有将基类的use的模块也包含进来吗?

概念不对
基类use 进来模块的函数并不是一个基类的方法(可以用$class->xxx调用的method),自然不可能被继承

在 2011年3月4日 上午11:45,Beckheng Lam <bi.ken.lam@gmail.com>写道:
如我有一基类:
package Base;

use Moose;

use Locale::Messages qw(:locale_h :libintl_h);


但子类中
package Sub1;

use Moose;

extends 'Base';

使用gettext则提示Undefined subroutine xxxx::gettext.

--
Perl乐事 -- http://www.perlersh.org
我的博客 -- http://www.perlersh.org/blog.html
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

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




--
Woosley.Xu



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

2011年3月3日星期四

[PerlChina] Moose的extends没有将基类的use的模块也包含进来吗?

如我有一基类:
package Base;

use Moose;

use Locale::Messages qw(:locale_h :libintl_h);


但子类中
package Sub1;

use Moose;

extends 'Base';

使用gettext则提示Undefined subroutine xxxx::gettext.

--
Perl乐事 -- http://www.perlersh.org
我的博客 -- http://www.perlersh.org/blog.html
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

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

2011年3月1日星期二

Re: Re: [PerlChina] Perl有没交互式的shell

语法有点变化。主要是前缀不变,其他的perl5语法应该都能执行。

在 2011年3月1日 下午9:41,Cond0r <cond0r@126.com>写道:

perl6?..语法没变化吗?perl -de 0 if啥的语句都得写一行...不舒服

在2011-02-27,"Achilles Xu" <formalin14@gmail.com> 写道:
-----原始邮件-----
发件人:"Achilles Xu" <formalin14@gmail.com>
发送时间:2011年2月27日 星期日
收件人:perlchina@googlegroups.com
主题:Re: [PerlChina] Perl有没交互式的shell

perl6

在 2011年2月27日 下午10:59,万�新<xunxin.wan@qunar.com>写道:
perl -de 0

2011/2/27 rochelle hsu<rjhome@gmail.com>

perl -d?

在 2011-2-27 下午8:23,"Cond0r" <cond0r@126.com>写道:

--
您收到此邮件是因为您订阅了 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访问此网上论坛。



--
---------------------------
Achilles Xu

--

您收到此邮件是因为您订阅了 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 访问此网上论坛。



--
---------------------------
Achilles Xu

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

Re: [PerlChina] 缘何https://github.com/PerlChina/modern_perl_book的pod在浏览的时候总出现POD ERRORS?

与中文无关吧
chromatic的英文版也有解析错误
github不支持那么多特殊的pod标志

在 2011年3月1日 下午10:11,cnhack TNT <cnhacktnt@gmail.com>写道:
可能是 github 的服务端在解析含中文的pod文件时出的问题,你可以 clone 到本地用文本编辑器看,或者看这边的pdf版?
http://xrl.us/mpbcn

2011/3/1 Beckheng Lam <bi.ken.lam@gmail.com>

As title says.

--
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

--
您收到此邮件是因为您订阅了 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 访问此网上论坛。



--
Woosley.Xu



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

Re: [PerlChina] 缘何https://github.com/PerlChina/modern_perl_book的pod在浏览的时候总出现POD ERRORS?

可能是 github 的服务端在解析含中文的pod文件时出的问题,你可以 clone 到本地用文本编辑器看,或者看这边的pdf版?
http://xrl.us/mpbcn

2011/3/1 Beckheng Lam <bi.ken.lam@gmail.com>
As title says.

--
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

--
您收到此邮件是因为您订阅了 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:Re: [PerlChina] Perl有没交互式的shell


perl6?..语法没变化吗?perl -de 0 if啥的语句都得写一行...不舒服

在2011-02-27,"Achilles Xu" <formalin14@gmail.com> 写道:
-----原始邮件-----
发件人:"Achilles Xu" <formalin14@gmail.com>
发送时间:2011年2月27日 星期日
收件人:perlchina@googlegroups.com
主题:Re: [PerlChina] Perl有没交互式的shell

perl6

在 2011年2月27日 下午10:59,万�新<xunxin.wan@qunar.com>写道:
perl -de 0

2011/2/27 rochelle hsu<rjhome@gmail.com>

perl -d?

在 2011-2-27 下午8:23,"Cond0r" <cond0r@126.com>写道:

--
您收到此邮件是因为您订阅了 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访问此网上论坛。



--
---------------------------
Achilles Xu

--
您收到此邮件是因为您订阅了 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] 缘何https://github.com/PerlChina/modern_perl_book的pod在浏览的时候总出现POD ERRORS?

As title says.

--
诸法从缘起,如来说是因。
彼法因缘尽,是大沙门说。

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

Re: [PerlChina] 异步HTTP客户端实现 AnyEvent::HTTP

用EV模块, 没有复先出来你的bug, 用你博客上的 tcp多重复用, 设置timer超时两分钟的代码, 
我设置超时后打印 出 
         print $cssock, time . " bbbbb";

没有复现你的bug, 呵呵。 

详细说明你测试的情况哦。

xunxin

2011/3/1 Achilles Xu <formalin14@gmail.com>
关键是能跨epoll和kqueue。不过anyevent的timer在多进程环境有bug。不过也很少有人在多进程下用多路复用吧。除了nginx。

在 2011年3月1日 上午10:00,Jianqiang Liu <liujq.happy@gmail.com>写道:

试用了一下,性能很不错。
而且AnyEvent::HTTP和AnyEvent、EV是Linux、Windows版本都有的,这点挺方便的。

--
jqliu

于 2011-02-27 11:35, liseen 写道:
Hi

AnyEvent::HTTP 是个异步的HTTP客户端实现, 好使。

具体看:
http://search.cpan.org/~mlehmann/AnyEvent-HTTP-2.1/HTTP.pm <http://search.cpan.org/%7Emlehmann/AnyEvent-HTTP-2.1/HTTP.pm>


Marc Lehmann实现了很多东东, 很靠谱, 最近用了他的 libev (C语言的) , 很靠谱, 对应的Perl模块是 EV

给大家推荐一下, 呵呵

xunxin

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




--
---------------------------
Achilles Xu


--
您收到此邮件是因为您订阅了 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] 异步HTTP客户端实现 AnyEvent::HTTP

Hi,
 
2011/3/1 Achilles Xu <formalin14@gmail.com>
关键是能跨epoll和kqueue。不过anyevent的timer在多进程环境有bug。不过也很少有人在多进程下用多路复用吧。除了nginx。
把你复现bug的代码, 以及如何复现能给出一下吗? l


xunxin
 

在 2011年3月1日 上午10:00,Jianqiang Liu <liujq.happy@gmail.com>写道:

试用了一下,性能很不错。
而且AnyEvent::HTTP和AnyEvent、EV是Linux、Windows版本都有的,这点挺方便的。

--
jqliu

于 2011-02-27 11:35, liseen 写道:
Hi

AnyEvent::HTTP 是个异步的HTTP客户端实现, 好使。

具体看:
http://search.cpan.org/~mlehmann/AnyEvent-HTTP-2.1/HTTP.pm <http://search.cpan.org/%7Emlehmann/AnyEvent-HTTP-2.1/HTTP.pm>


Marc Lehmann实现了很多东东, 很靠谱, 最近用了他的 libev (C语言的) , 很靠谱, 对应的Perl模块是 EV

给大家推荐一下, 呵呵

xunxin

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




--
---------------------------
Achilles Xu


--
您收到此邮件是因为您订阅了 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 访问此网上论坛。

2011年2月28日星期一

Re: [PerlChina] 异步HTTP客户端实现 AnyEvent::HTTP

关键是能跨epoll和kqueue。不过anyevent的timer在多进程环境有bug。不过也很少有人在多进程下用多路复用吧。除了nginx。

在 2011年3月1日 上午10:00,Jianqiang Liu <liujq.happy@gmail.com>写道:
试用了一下,性能很不错。
而且AnyEvent::HTTP和AnyEvent、EV是Linux、Windows版本都有的,这点挺方便的。

--
jqliu

于 2011-02-27 11:35, liseen 写道:
Hi

AnyEvent::HTTP 是个异步的HTTP客户端实现, 好使。

具体看:
http://search.cpan.org/~mlehmann/AnyEvent-HTTP-2.1/HTTP.pm <http://search.cpan.org/%7Emlehmann/AnyEvent-HTTP-2.1/HTTP.pm>


Marc Lehmann实现了很多东东, 很靠谱, 最近用了他的 libev (C语言的) , 很靠谱, 对应的Perl模块是 EV

给大家推荐一下, 呵呵

xunxin

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




--
---------------------------
Achilles Xu

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

Re: [PerlChina] 异步HTTP客户端实现 AnyEvent::HTTP

试用了一下,性能很不错。
而且AnyEvent::HTTP和AnyEvent、EV是Linux、Windows版本都有的,这点挺方便的。

--
jqliu

于 2011-02-27 11:35, liseen 写道:
> Hi
>
> AnyEvent::HTTP 是个异步的HTTP客户端实现, 好使。
>
> 具体看:
> http://search.cpan.org/~mlehmann/AnyEvent-HTTP-2.1/HTTP.pm <http://search.cpan.org/%7Emlehmann/AnyEvent-HTTP-2.1/HTTP.pm>
>
> Marc Lehmann实现了很多东东, 很靠谱, 最近用了他的 libev (C语言的) , 很靠谱, 对应的Perl模块是 EV
>
> 给大家推荐一下, 呵呵
>
> xunxin

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

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?

On 02/28/2011 01:44 PM, Kermit wrote:
> On Mon, 2011-02-28 at 13:13 +0800, Michael Zeng wrote:
>> 看的累啊, 有时候 regex 过于复杂 看的真累,
>
> OT一下,我觉得Perl好像不怎么在乎可读性,相对与其他语言,它更是以短
> 为美,不知到这个理解对否?
>

想要可读性就可以分开几步作 + 注释(然后放到一个 sub re_love_to_test 里)
即可。 Perl 里还有 Regex::Common, 很多人推荐的。

其他语言的 Regex 基本上都是照着 Perl 学来的,一个 Regex 来作这样的替换也
好不到那里去。

> B.R
> Kermit
>


Qiang

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

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?

天天面对成百上千的正则表达式,已经习惯了....相对来说,这个算清爽的 :-p

不过这也是为了迎合楼主的要求,不然我自己写代码,刚开始可能会图方便,但跑起来之后会将这部分改成可读性好的多行

2011/2/28 Robin Lee <robinlee.sysu@gmail.com>
谁会不在乎可读性呢?
而“短”的标准是代码的表达力和执行效率,而不是代码的行数或字符数。


2011/2/28 Kermit <kermit.mei@gmail.com>
On Mon, 2011-02-28 at 13:13 +0800, Michael Zeng wrote:
> 看的累啊,  有时候 regex 过于复杂  看的真累,

   OT一下,我觉得Perl好像不怎么在乎可读性,相对与其他语言,它更是以短
为美,不知到这个理解对否?

B.R
Kermit

>
> 2011/2/28 cnhack TNT <cnhacktnt@gmail.com>
>
>         结合一下正则替换和 y 操作符:
>
>
>         $_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;
>
>
>         s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;
>
>
>         print $_;
>
>
>
>
>
>
>         2011/2/28 Kermit <kermit.mei@gmail.com>
>                 On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
>                 > 我的思路是: 第一步把匹配“LOVE”(全大写的)替换
>                 为“TEST”;
>                 >                           第二步把匹配“L"ove (首字符
>                 l大写,后面字符不
>                 > 管大小写)替换为“Test”;
>                 >                          第三步把匹配    "love"(不管
>                 大小写)都替换
>                 > 为“test”。
>
>
>
>                 我也是这个思路,就是不知到怎么用最Perl的方式写出来。我
>                 那个写法太罗嗦了。
>                 最好能有一句实现的那种。
>
>
>
>                 > On 02/25/2011 10:23 PM, zesheng wang wrote:
>                 > > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
>                 > > 不知道你是不是要这个效果?
>                 > >
>                 > > 在 2011年2月25日 下午6:17,Achilles Xu
>                 <formalin14@gmail.com>写 道:
>                 > >         上面的方法也不是一无是处,可以先把foreach
>                 里的代码简化了。至
>                 > >         于怎么一句实现,我再想想。
>                 > >
>                 > >
>                 > >         $loveStr = q/love LOVE Love lOVe LOve
>                 loVE/;
>                 > >            print $loveStr."\n";
>                 > >            foreach my $en ($loveStr =~ m/love/ig)
>                 {
>                 > >
>                 > >                 $en2 = $en;
>                 > >                 $en2 =~ tr/loveLOVE/testTEST/;
>                 > >                 $loveStr =~ s/$en/$en2/g;
>                 > >            }
>                 > >            print $loveStr."\n";
>                 > >
>                 > >
>                 > >         在 2011年2月25日 下午6:11,Achilles Xu
>                 > >         <formalin14@gmail.com>写 道:
>                 > >
>                 > >                 呵呵,上面这个是错的,一时没考虑清
>                 楚,手快给发了。我
>                 > >                 再想想。
>                 > >
>                 > >                 在 2011年2月25日 下午6:10,
>                 Achilles Xu
>                 > >                 <formalin14@gmail.com>写 道:
>                 > >
>                 > >                         tr/loveLOVE/testTEST/;
>                 > >
>
>         --
>         您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers
>         讨论组”论坛。
>         要向此网上论坛发帖,请发送电子邮件至
>         perlchina@googlegroups.com
>         要取消订阅此网上论坛,请发送电子邮件至 perlchina
>         +unsubscribe@googlegroups.com
>         若有更多问题,请通过
>         http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
>         坛。
>
>
>
> --
>             Yours Sincerely
>                     Zeng Hong
>
>
> --
> 您收到此邮件是因为您订阅了 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] Perl 能否像emacs那样进行更智能一些的文本替换?

谁会不在乎可读性呢?
而“短”的标准是代码的表达力和执行效率,而不是代码的行数或字符数。

2011/2/28 Kermit <kermit.mei@gmail.com>
On Mon, 2011-02-28 at 13:13 +0800, Michael Zeng wrote:
> 看的累啊,  有时候 regex 过于复杂  看的真累,

   OT一下,我觉得Perl好像不怎么在乎可读性,相对与其他语言,它更是以短
为美,不知到这个理解对否?

B.R
Kermit

>
> 2011/2/28 cnhack TNT <cnhacktnt@gmail.com>
>
>         结合一下正则替换和 y 操作符:
>
>
>         $_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;
>
>
>         s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;
>
>
>         print $_;
>
>
>
>
>
>
>         2011/2/28 Kermit <kermit.mei@gmail.com>
>                 On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
>                 > 我的思路是: 第一步把匹配“LOVE”(全大写的)替换
>                 为“TEST”;
>                 >                           第二步把匹配“L"ove (首字符
>                 l大写,后面字符不
>                 > 管大小写)替换为“Test”;
>                 >                          第三步把匹配    "love"(不管
>                 大小写)都替换
>                 > 为“test”。
>
>
>
>                 我也是这个思路,就是不知到怎么用最Perl的方式写出来。我
>                 那个写法太罗嗦了。
>                 最好能有一句实现的那种。
>
>
>
>                 > On 02/25/2011 10:23 PM, zesheng wang wrote:
>                 > > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
>                 > > 不知道你是不是要这个效果?
>                 > >
>                 > > 在 2011年2月25日 下午6:17,Achilles Xu
>                 <formalin14@gmail.com>写 道:
>                 > >         上面的方法也不是一无是处,可以先把foreach
>                 里的代码简化了。至
>                 > >         于怎么一句实现,我再想想。
>                 > >
>                 > >
>                 > >         $loveStr = q/love LOVE Love lOVe LOve
>                 loVE/;
>                 > >            print $loveStr."\n";
>                 > >            foreach my $en ($loveStr =~ m/love/ig)
>                 {
>                 > >
>                 > >                 $en2 = $en;
>                 > >                 $en2 =~ tr/loveLOVE/testTEST/;
>                 > >                 $loveStr =~ s/$en/$en2/g;
>                 > >            }
>                 > >            print $loveStr."\n";
>                 > >
>                 > >
>                 > >         在 2011年2月25日 下午6:11,Achilles Xu
>                 > >         <formalin14@gmail.com>写 道:
>                 > >
>                 > >                 呵呵,上面这个是错的,一时没考虑清
>                 楚,手快给发了。我
>                 > >                 再想想。
>                 > >
>                 > >                 在 2011年2月25日 下午6:10,
>                 Achilles Xu
>                 > >                 <formalin14@gmail.com>写 道:
>                 > >
>                 > >                         tr/loveLOVE/testTEST/;
>                 > >
>
>         --
>         您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers
>         讨论组”论坛。
>         要向此网上论坛发帖,请发送电子邮件至
>         perlchina@googlegroups.com
>         要取消订阅此网上论坛,请发送电子邮件至 perlchina
>         +unsubscribe@googlegroups.com
>         若有更多问题,请通过
>         http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
>         坛。
>
>
>
> --
>             Yours Sincerely
>                     Zeng Hong
>
>
> --
> 您收到此邮件是因为您订阅了 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 访问此网上论坛。

2011年2月27日星期日

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?

其实都是慢慢累积出来的。经历过那个添加的过程的话,其实还是能读懂的。只是对于没有经历过的人,就比较头疼了。

在 2011年2月28日 下午1:44,Kermit <kermit.mei@gmail.com>写道:
On Mon, 2011-02-28 at 13:13 +0800, Michael Zeng wrote:
> 看的累啊,  有时候 regex 过于复杂  看的真累,

   OT一下,我觉得Perl好像不怎么在乎可读性,相对与其他语言,它更是以短
为美,不知到这个理解对否?

B.R
Kermit

>
> 2011/2/28 cnhack TNT <cnhacktnt@gmail.com>
>
>         结合一下正则替换和 y 操作符:
>
>
>         $_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;
>
>
>         s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;
>
>
>         print $_;
>
>
>
>
>
>
>         2011/2/28 Kermit <kermit.mei@gmail.com>
>                 On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
>                 > 我的思路是: 第一步把匹配“LOVE”(全大写的)替换
>                 为“TEST”;
>                 >                           第二步把匹配“L"ove (首字符
>                 l大写,后面字符不
>                 > 管大小写)替换为“Test”;
>                 >                          第三步把匹配    "love"(不管
>                 大小写)都替换
>                 > 为“test”。
>
>
>
>                 我也是这个思路,就是不知到怎么用最Perl的方式写出来。我
>                 那个写法太罗嗦了。
>                 最好能有一句实现的那种。
>
>
>
>                 > On 02/25/2011 10:23 PM, zesheng wang wrote:
>                 > > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
>                 > > 不知道你是不是要这个效果?
>                 > >
>                 > > 在 2011年2月25日 下午6:17,Achilles Xu
>                 <formalin14@gmail.com>写 道:
>                 > >         上面的方法也不是一无是处,可以先把foreach
>                 里的代码简化了。至
>                 > >         于怎么一句实现,我再想想。
>                 > >
>                 > >
>                 > >         $loveStr = q/love LOVE Love lOVe LOve
>                 loVE/;
>                 > >            print $loveStr."\n";
>                 > >            foreach my $en ($loveStr =~ m/love/ig)
>                 {
>                 > >
>                 > >                 $en2 = $en;
>                 > >                 $en2 =~ tr/loveLOVE/testTEST/;
>                 > >                 $loveStr =~ s/$en/$en2/g;
>                 > >            }
>                 > >            print $loveStr."\n";
>                 > >
>                 > >
>                 > >         在 2011年2月25日 下午6:11,Achilles Xu
>                 > >         <formalin14@gmail.com>写 道:
>                 > >
>                 > >                 呵呵,上面这个是错的,一时没考虑清
>                 楚,手快给发了。我
>                 > >                 再想想。
>                 > >
>                 > >                 在 2011年2月25日 下午6:10,
>                 Achilles Xu
>                 > >                 <formalin14@gmail.com>写 道:
>                 > >
>                 > >                         tr/loveLOVE/testTEST/;
>                 > >
>
>         --
>         您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers
>         讨论组”论坛。
>         要向此网上论坛发帖,请发送电子邮件至
>         perlchina@googlegroups.com
>         要取消订阅此网上论坛,请发送电子邮件至 perlchina
>         +unsubscribe@googlegroups.com
>         若有更多问题,请通过
>         http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
>         坛。
>
>
>
> --
>             Yours Sincerely
>                     Zeng Hong
>
>
> --
> 您收到此邮件是因为您订阅了 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 访问此网上论坛。




--
---------------------------
Achilles Xu

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

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?

On Mon, 2011-02-28 at 13:13 +0800, Michael Zeng wrote:
> 看的累啊, 有时候 regex 过于复杂 看的真累,

OT一下,我觉得Perl好像不怎么在乎可读性,相对与其他语言,它更是以短
为美,不知到这个理解对否?

B.R
Kermit

>
> 2011/2/28 cnhack TNT <cnhacktnt@gmail.com>
>
> 结合一下正则替换和 y 操作符:
>
>
> $_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;
>
>
> s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;
>
>
> print $_;
>
>
>
>
>
>
> 2011/2/28 Kermit <kermit.mei@gmail.com>
> On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
> > 我的思路是: 第一步把匹配"LOVE"(全大写的)替换
> 为"TEST";
> > 第二步把匹配"L"ove (首字符
> l大写,后面字符不
> > 管大小写)替换为"Test";
> > 第三步把匹配 "love"(不管
> 大小写)都替换
> > 为"test"。
>
>
>
> 我也是这个思路,就是不知到怎么用最Perl的方式写出来。我
> 那个写法太罗嗦了。
> 最好能有一句实现的那种。
>
>
>
> > On 02/25/2011 10:23 PM, zesheng wang wrote:
> > > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
> > > 不知道你是不是要这个效果?
> > >
> > > 在 2011年2月25日 下午6:17,Achilles Xu
> <formalin14@gmail.com>写 道:
> > > 上面的方法也不是一无是处,可以先把foreach
> 里的代码简化了。至
> > > 于怎么一句实现,我再想想。
> > >
> > >
> > > $loveStr = q/love LOVE Love lOVe LOve
> loVE/;
> > > print $loveStr."\n";
> > > foreach my $en ($loveStr =~ m/love/ig)
> {
> > >
> > > $en2 = $en;
> > > $en2 =~ tr/loveLOVE/testTEST/;
> > > $loveStr =~ s/$en/$en2/g;
> > > }
> > > print $loveStr."\n";
> > >
> > >
> > > 在 2011年2月25日 下午6:11,Achilles Xu
> > > <formalin14@gmail.com>写 道:
> > >
> > > 呵呵,上面这个是错的,一时没考虑清
> 楚,手快给发了。我
> > > 再想想。
> > >
> > > 在 2011年2月25日 下午6:10,
> Achilles Xu
> > > <formalin14@gmail.com>写 道:
> > >
> > > tr/loveLOVE/testTEST/;
> > >
>
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers
> 讨论组"论坛。
> 要向此网上论坛发帖,请发送电子邮件至
> perlchina@googlegroups.com
> 要取消订阅此网上论坛,请发送电子邮件至 perlchina
> +unsubscribe@googlegroups.com
> 若有更多问题,请通过
> http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
> 坛。
>
>
>
> --
> Yours Sincerely
> Zeng Hong
>
>
> --
> 您收到此邮件是因为您订阅了 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] Perl 能否像emacs那样进行更智能一些的文本替换?

看的累啊,  有时候 regex 过于复杂  看的真累,  

2011/2/28 cnhack TNT <cnhacktnt@gmail.com>

结合一下正则替换和 y 操作符:

$_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;

s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;

print $_;



2011/2/28 Kermit <kermit.mei@gmail.com>
On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
> 我的思路是: 第一步把匹配“LOVE”(全大写的)替换为“TEST”;
>                           第二步把匹配“L"ove (首字符l大写,后面字符不
> 管大小写)替换为“Test”;
>                          第三步把匹配    "love"(不管大小写)都替换
> 为“test”。


我也是这个思路,就是不知到怎么用最Perl的方式写出来。我那个写法太罗嗦了。
最好能有一句实现的那种。


> On 02/25/2011 10:23 PM, zesheng wang wrote:
> > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
> > 不知道你是不是要这个效果?
> >
> > 在 2011年2月25日 下午6:17,Achilles Xu <formalin14@gmail.com>写 道:
> >         上面的方法也不是一无是处,可以先把foreach里的代码简化了。至
> >         于怎么一句实现,我再想想。
> >
> >
> >         $loveStr = q/love LOVE Love lOVe LOve loVE/;
> >            print $loveStr."\n";
> >            foreach my $en ($loveStr =~ m/love/ig) {
> >
> >                 $en2 = $en;
> >                 $en2 =~ tr/loveLOVE/testTEST/;
> >                 $loveStr =~ s/$en/$en2/g;
> >            }
> >            print $loveStr."\n";
> >
> >
> >         在 2011年2月25日 下午6:11,Achilles Xu
> >         <formalin14@gmail.com>写 道:
> >
> >                 呵呵,上面这个是错的,一时没考虑清楚,手快给发了。我
> >                 再想想。
> >
> >                 在 2011年2月25日 下午6:10,Achilles Xu
> >                 <formalin14@gmail.com>写 道:
> >
> >                         tr/loveLOVE/testTEST/;
> >

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



--
            Yours Sincerely
                    Zeng Hong

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

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?


结合一下正则替换和 y 操作符:

$_ = q/love Love LOVE lOVe LOVe lOVE lovE loVE/;

s/\b(?![A-Z]+\b)\w\K(\w+)/lc($1)/eg && y/loveLOVE/testTEST/;

print $_;



2011/2/28 Kermit <kermit.mei@gmail.com>
On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
> 我的思路是: 第一步把匹配“LOVE”(全大写的)替换为“TEST”;
>                           第二步把匹配“L"ove (首字符l大写,后面字符不
> 管大小写)替换为“Test”;
>                          第三步把匹配    "love"(不管大小写)都替换
> 为“test”。


我也是这个思路,就是不知到怎么用最Perl的方式写出来。我那个写法太罗嗦了。
最好能有一句实现的那种。


> On 02/25/2011 10:23 PM, zesheng wang wrote:
> > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
> > 不知道你是不是要这个效果?
> >
> > 在 2011年2月25日 下午6:17,Achilles Xu <formalin14@gmail.com>写 道:
> >         上面的方法也不是一无是处,可以先把foreach里的代码简化了。至
> >         于怎么一句实现,我再想想。
> >
> >
> >         $loveStr = q/love LOVE Love lOVe LOve loVE/;
> >            print $loveStr."\n";
> >            foreach my $en ($loveStr =~ m/love/ig) {
> >
> >                 $en2 = $en;
> >                 $en2 =~ tr/loveLOVE/testTEST/;
> >                 $loveStr =~ s/$en/$en2/g;
> >            }
> >            print $loveStr."\n";
> >
> >
> >         在 2011年2月25日 下午6:11,Achilles Xu
> >         <formalin14@gmail.com>写 道:
> >
> >                 呵呵,上面这个是错的,一时没考虑清楚,手快给发了。我
> >                 再想想。
> >
> >                 在 2011年2月25日 下午6:10,Achilles Xu
> >                 <formalin14@gmail.com>写 道:
> >
> >                         tr/loveLOVE/testTEST/;
> >

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

Re: [PerlChina] Perl 能否像emacs那样进行更智能一些的文本替换?

On Mon, 2011-02-28 at 09:14 +0800, zwg.zero wrote:
> 我的思路是: 第一步把匹配"LOVE"(全大写的)替换为"TEST";
> 第二步把匹配"L"ove (首字符l大写,后面字符不
> 管大小写)替换为"Test";
> 第三步把匹配 "love"(不管大小写)都替换
> 为"test"。


我也是这个思路,就是不知到怎么用最Perl的方式写出来。我那个写法太罗嗦了。
最好能有一句实现的那种。


> On 02/25/2011 10:23 PM, zesheng wang wrote:
> > $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
> > 不知道你是不是要这个效果?
> >
> > 在 2011年2月25日 下午6:17,Achilles Xu <formalin14@gmail.com>写 道:
> > 上面的方法也不是一无是处,可以先把foreach里的代码简化了。至
> > 于怎么一句实现,我再想想。
> >
> >
> > $loveStr = q/love LOVE Love lOVe LOve loVE/;
> > print $loveStr."\n";
> > foreach my $en ($loveStr =~ m/love/ig) {
> >
> > $en2 = $en;
> > $en2 =~ tr/loveLOVE/testTEST/;
> > $loveStr =~ s/$en/$en2/g;
> > }
> > print $loveStr."\n";
> >
> >
> > 在 2011年2月25日 下午6:11,Achilles Xu
> > <formalin14@gmail.com>写 道:
> >
> > 呵呵,上面这个是错的,一时没考虑清楚,手快给发了。我
> > 再想想。
> >
> > 在 2011年2月25日 下午6:10,Achilles Xu
> > <formalin14@gmail.com>写 道:
> >
> > tr/loveLOVE/testTEST/;
> >
> > 在 2011年2月25日 下午3:22,Kermit
> > <kermit.mei@gmail.com>写 道:
> >
> > On Fri, 2011-02-25 at 15:11 +0800,
> > Achilles Xu wrote:
> > > s/love/test/i;
> > >
> > > 最后的i表示不区分大小写
> >
> >
> > 那样会把所有的大小写无关的love都换成
> > 小写的test, 我其实想要的是这样的效
> > 果:
> >
> > $loveStr = q/love LOVE Love lOVe
> > LOve loVE/;
> > print $loveStr."\n";
> > foreach my $en ($loveStr =~
> > m/love/ig) {
> > if($en eq uc($en)) {
> > $loveStr =~ s/$en/TEST/g;
> > }elsif(substr($en,0,1) eq
> > uc(substr($en,0,1))) {
> > $loveStr =~ s/$en/Test/g;
> > }else {
> > $loveStr =~ s/$en/test/g;
> > }
> > }
> > print $loveStr."\n";
> >
> > 运行输出:
> > love LOVE Love lOVe LOve loVE
> > test TEST Test test Test test
> >
> > 只不过上面写法太罗嗦,不知有没有更优
> > 雅,更Perl的写法?
> >
> > Thanks
> > B.R
> > Kermit
> >
> > >
> > > 在 2011年2月25日 下午2:17,Kermit
> > <kermit.mei@gmail.com> 写道:
> > > Dear all,
> > >
> > > $loveStr = q/love Love
> > LOVE lOVe LOVe/;
> > >
> > > 如果在emacs中编辑C/C++代码
> > 时,用"M-x replace-string love
> > > test",
> > > 就会从
> > > q/love Love LOVE lOVe
> > LOVe/;
> > > 变为:
> > > q/test Test TEST test
> > Test/;
> > >
> > > 就是说能够识别开头的大写和
> > 全大写。这在Perl中有没有什么方式快捷
> > > 实现?
> > >
> > > Thanks
> > > B.R
> > > Kermit
> > >
> > >
> > >
> > >
> > >
> > > --
> > > 您收到此邮件是因为您订阅了
> > Google 网上论坛的"PerlChina Mongers
> > > 讨论组"论坛。
> > > 要向此网上论坛发帖,请发送
> > 电子邮件至
> > >
> > perlchina@googlegroups.com
> > > 要取消订阅此网上论坛,请发
> > 送电子邮件至 perlchina
> > >
> > +unsubscribe@googlegroups.com
> > > 若有更多问题,请通过
> > >
> > http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
> > > 坛。
> > >
> > >
> > >
> > >
> > > --
> > > ---------------------------
> > > Achilles Xu
> > >
> > >
> > >
> >
> > > --
> > > 您收到此邮件是因为您订阅了 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 访问此网上论坛。
> >
> >
> >
> >
> >
> > --
> > ---------------------------
> > Achilles Xu
> >
> >
> >
> >
> > --
> > ---------------------------
> > Achilles Xu
> >
> >
> >
> >
> > --
> > ---------------------------
> > Achilles Xu
> >
> > --
> > 您收到此邮件是因为您订阅了 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] Perl 能否像emacs那样进行更智能一些的文本替换?

我的思路是: 第一步把匹配"LOVE"(全大写的)替换为"TEST";
                          第二步把匹配"L"ove (首字符l大写,后面字符不管大小写)替换为"Test";
                         第三步把匹配    "love"(不管大小写)都替换为"test"。

On 02/25/2011 10:23 PM, zesheng wang wrote:
$loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
不知道你是不是要这个效果?

在 2011年2月25日 下午6:17,Achilles Xu <formalin14@gmail.com>写 道:
上面的方法也不是一无是处,可以先把foreach里的代码简化了。至于怎么一句实现,我再想想。
 
 
$loveStr = q/love LOVE Love lOVe LOve loVE/;
   print $loveStr."\n";
   foreach my $en ($loveStr =~ m/love/ig) {
        $en2 = $en;
        $en2 =~ tr/loveLOVE/testTEST/;
        $loveStr =~ s/$en/$en2/g;    
   }
   print $loveStr."\n";

在 2011年2月25日 下午6:11,Achilles Xu <formalin14@gmail.com>写 道:

呵呵,上面这个是错的,一时没考虑清楚,手快给发了。我再想想。

在 2011年2月25日 下午6:10,Achilles Xu <formalin14@gmail.com>写 道:

tr/loveLOVE/testTEST/;

在 2011年2月25日 下午3:22,Kermit <kermit.mei@gmail.com>写 道:

On Fri, 2011-02-25 at 15:11 +0800, Achilles Xu wrote:
> s/love/test/i;
>
> 最后的i表示不区分大小写

那样会把所有的大小写无关的love都换成小写的test, 我其实想要的是这样的效
果:

   $loveStr = q/love LOVE Love lOVe LOve loVE/;
   print $loveStr."\n";
   foreach my $en ($loveStr =~ m/love/ig) {
       if($en eq uc($en)) {
           $loveStr =~ s/$en/TEST/g;
       }elsif(substr($en,0,1) eq uc(substr($en,0,1))) {
           $loveStr =~ s/$en/Test/g;
       }else {
           $loveStr =~ s/$en/test/g;
       }
   }
   print $loveStr."\n";

运行输出:
love LOVE Love lOVe LOve loVE
test TEST Test test Test test

只不过上面写法太罗嗦,不知有没有更优雅,更Perl的写法?

Thanks
B.R
Kermit

>
> 在 2011年2月25日 下午2:17,Kermit <kermit.mei@gmail.com> 写道:
>         Dear all,
>
>         $loveStr = q/love Love LOVE lOVe LOVe/;
>
>         如果在emacs中编辑C/C++代码时,用"M-x replace-string love
>         test",
>         就会从
>         q/love Love LOVE lOVe LOVe/;
>         变为:
>         q/test Test TEST test Test/;
>
>         就是说能够识别开头的大写和全大写。这在Perl中有没有什么方式快捷
>         实现?
>
>         Thanks
>         B.R
>         Kermit
>
>
>
>
>
>         --
>         您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers
>         讨论组"论坛。
>         要向此网上论坛发帖,请发送电子邮件至
>         perlchina@googlegroups.com
>         要取消订阅此网上论坛,请发送电子邮件至 perlchina
>         +unsubscribe@googlegroups.com
>         若有更多问题,请通过
>         http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
>         坛。
>
>
>
>
> --
> ---------------------------
> Achilles Xu
>
>
>
> --
> 您收到此邮件是因为您订阅了 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 访问此网上论坛。




--
---------------------------
Achilles Xu




--
---------------------------
Achilles Xu




--
---------------------------
Achilles Xu

--
您收到此邮件是因为您订阅了 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] Perl 能否像emacs那样进行更智能一些的文本替换?

On Fri, 2011-02-25 at 22:23 +0800, zesheng wang wrote:
> $loveStr =~ s/(l)ove/@{[$1 eq 'L'?'T':'t']}est/gi;
> 不知道你是不是要这个效果?

这个写法很Perl!不过还有点儿问题,我再学习一下。

我没看明白:
@{[$1 eq 'L'?'T':'t']}est中的 @{...}怎么理解?

Thanks
B.R
Kermit

> 在 2011年2月25日 下午6:17,Achilles Xu <formalin14@gmail.com>写道:
> 上面的方法也不是一无是处,可以先把foreach里的代码简化了。至于
> 怎么一句实现,我再想想。
>
>
> $loveStr = q/love LOVE Love lOVe LOve loVE/;
> print $loveStr."\n";
> foreach my $en ($loveStr =~ m/love/ig) {
>
> $en2 = $en;
> $en2 =~ tr/loveLOVE/testTEST/;
> $loveStr =~ s/$en/$en2/g;
> }
> print $loveStr."\n";
>
>
> 在 2011年2月25日 下午6:11,Achilles Xu
> <formalin14@gmail.com>写道:
>
>
> 呵呵,上面这个是错的,一时没考虑清楚,手快给发了。我再
> 想想。
>
> 在 2011年2月25日 下午6:10,Achilles Xu
> <formalin14@gmail.com>写道:
>
>
> tr/loveLOVE/testTEST/;
>
> 在 2011年2月25日 下午3:22,Kermit
> <kermit.mei@gmail.com>写道:
>
>
> On Fri, 2011-02-25 at 15:11 +0800,
> Achilles Xu wrote:
> > s/love/test/i;
> >
> > 最后的i表示不区分大小写
>
>
> 那样会把所有的大小写无关的love都换成小
> 写的test, 我其实想要的是这样的效
> 果:
>
> $loveStr = q/love LOVE Love lOVe
> LOve loVE/;
> print $loveStr."\n";
> foreach my $en ($loveStr =~
> m/love/ig) {
> if($en eq uc($en)) {
> $loveStr =~ s/$en/TEST/g;
> }elsif(substr($en,0,1) eq
> uc(substr($en,0,1))) {
> $loveStr =~ s/$en/Test/g;
> }else {
> $loveStr =~ s/$en/test/g;
> }
> }
> print $loveStr."\n";
>
> 运行输出:
> love LOVE Love lOVe LOve loVE
> test TEST Test test Test test
>
> 只不过上面写法太罗嗦,不知有没有更优
> 雅,更Perl的写法?
>
> Thanks
> B.R
> Kermit
>
>
> >
> > 在 2011年2月25日 下午2:17,Kermit
> <kermit.mei@gmail.com>写道:
> > Dear all,
> >
> > $loveStr = q/love Love LOVE
> lOVe LOVe/;
> >
> > 如果在emacs中编辑C/C++代码
> 时,用"M-x replace-string love
> > test",
> > 就会从
> > q/love Love LOVE lOVe LOVe/;
> > 变为:
> > q/test Test TEST test Test/;
> >
> > 就是说能够识别开头的大写和全
> 大写。这在Perl中有没有什么方式快捷
> > 实现?
> >
> > Thanks
> > B.R
> > Kermit
> >
> >
> >
> >
> >
> > --
> > 您收到此邮件是因为您订阅了
> Google 网上论坛的"PerlChina Mongers
> > 讨论组"论坛。
> > 要向此网上论坛发帖,请发送电
> 子邮件至
> > perlchina@googlegroups.com
> > 要取消订阅此网上论坛,请发送
> 电子邮件至 perlchina
> >
> +unsubscribe@googlegroups.com
> > 若有更多问题,请通过
> >
> http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论
> > 坛。
> >
> >
> >
> >
> > --
> > ---------------------------
> > Achilles Xu
> >
> >
> >
>
> > --
>
> > 您收到此邮件是因为您订阅了 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 访问此网上论坛。
>
>
>
>
>
> --
> ---------------------------
> Achilles Xu
>
>
>
>
> --
> ---------------------------
> Achilles Xu
>
>
>
>
>
> --
> ---------------------------
> Achilles Xu
>
>
>
> --
> 您收到此邮件是因为您订阅了 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 访问此网上论坛。