2009年10月3日星期六

[PerlChina] Re: 有个程序不是很理解,请大家给我指点一下

如果在主程序里面,
 
shift  =    shift @ARGV 
 
 

2009/9/30 qingshui <xiongpersonal@gmail.com>
cnhack TNT,
谢谢你的详细讲解,我已经有所理解了。sub return是个子程序返回的子程序引用,而shift相当于shift@_数组,
或者说,子程序中参数传递还可以传给其他的非@_数组,甚至随便什么名称的变量,只要这个名称的变量是在
my或者local后面就行。
再次谢谢你的帮助!


--
           Yours Sincerely
                   Zeng Hong

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

2009年10月2日星期五

[PerlChina] Re: Merry Wedding to Qiang

新婚愉快 早生贵子

2009/10/3 钟声 <gh00920307@gmail.com>
祝福

2009/10/2 msmouse <msmouse@gmail.com>

嗯 期待qiang 2.0早日上线

2009/10/2 PIG <addmyin@gmail.com>

支持新郎官。哈哈。早开发个小宝宝玩。

2009/10/2, Qiang (James) <shijialee@gmail.com>:
>
> 谢谢各位 :)
>
> 没来的及感谢 Joe 参加我的婚礼,Thanks!
>
> 婚礼后发烧,现在康复中... :)
>
> Qiang
>
>
> 空格 wrote:
>> 新来的,恭喜一下!
>>
>> On 9月25日, 下午4时34分, joe jiang <lamp.p...@gmail.com> wrote:
>>> Dear qiang, I think it's very impossible that you can check mail at
>>> today(the day before wedding).
>>>
>>> So I want to send my thanks to you, and show our appreciation to your
>>> works,
>>> which connects us (not only perl lovers, but also people seeks truth and
>>> wisdom). Wish you a great wedding :)
>> >
>
>
> >
>




--
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com







--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Merry Wedding to Qiang

祝福

2009/10/2 msmouse <msmouse@gmail.com>
嗯 期待qiang 2.0早日上线

2009/10/2 PIG <addmyin@gmail.com>

支持新郎官。哈哈。早开发个小宝宝玩。

2009/10/2, Qiang (James) <shijialee@gmail.com>:
>
> 谢谢各位 :)
>
> 没来的及感谢 Joe 参加我的婚礼,Thanks!
>
> 婚礼后发烧,现在康复中... :)
>
> Qiang
>
>
> 空格 wrote:
>> 新来的,恭喜一下!
>>
>> On 9月25日, 下午4时34分, joe jiang <lamp.p...@gmail.com> wrote:
>>> Dear qiang, I think it's very impossible that you can check mail at
>>> today(the day before wedding).
>>>
>>> So I want to send my thanks to you, and show our appreciation to your
>>> works,
>>> which connects us (not only perl lovers, but also people seeks truth and
>>> wisdom). Wish you a great wedding :)
>> >
>
>
> >
>




--
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com




--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 一个礼物

这个俺也做过,不过当时使用的是C#。用汉字做了个玫瑰:)

2009/10/2 Qiang (James) <shijialee@gmail.com>

可以考虑 ASCII 码艺术,Perlmonk 上有人做过类似的,参见

http://perlmonks.org/?node_id=309253
http://perlmonks.org/?node_id=45213   著名的骆驼 ASCII 图案

或者是这个模块
http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm

Qiang

Beckheng Lam wrote:
> 建议显示25个小心。 :-)  :-D
>
> 辉郎 wrote:
>> 虽然没做过,但是一定得支持!只是用perl短时间能做的很炫吗?建议去google一些诸如烟花之类的背景效果:-P
>>
>>
>> 在 09-10-2,qingshui<xiongpersonal@gmail.com> 写道:
>>
>>> 最近在学习perl,我女朋友马上要过生日了,我突然想到用perl编个程序给她个惊喜。
>>> 我的想法是编个心字型,她今天是28岁生日,所以这个心字要用28个小心做成一个大的
>>> 心字型。当然这个程序是在没有perl解释器的情况下可以运行。
>>> 我现在开始编了,但是很想知道是否大家也有这样的经历没有?
>>> 供我参考一下。本人承诺,此程序的源码全部给大家公布,
>>> 我甚至还想到,是否可以编一个通用的程序,比如说多少个心,我们通过
>>> 参数可以控制,甚至,还可以有其他的图形,比如生日快乐的字样了。
>>> 很希望大家给我idea。
>>>






--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 有没有山东济宁的用户?

我是济宁的啊 哈哈 我在金乡 每周去济宁两次

今年的大会我去了 ,你也去了吗 有时间交流一下 我才开始学习perl 仅仅处于了解阶段 希望能跟你交流 学习

你是什么单位啊

alin999#126.com

On 9月9日, 下午6时22分, li changying <lchangy...@gmail.com> wrote:
> 俺在济宁
>
> --
> Thanks & Regards.
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Merry Wedding to Qiang

嗯 期待qiang 2.0早日上线

2009/10/2 PIG <addmyin@gmail.com>
支持新郎官。哈哈。早开发个小宝宝玩。

2009/10/2, Qiang (James) <shijialee@gmail.com>:
>
> 谢谢各位 :)
>
> 没来的及感谢 Joe 参加我的婚礼,Thanks!
>
> 婚礼后发烧,现在康复中... :)
>
> Qiang
>
>
> 空格 wrote:
>> 新来的,恭喜一下!
>>
>> On 9月25日, 下午4时34分, joe jiang <lamp.p...@gmail.com> wrote:
>>> Dear qiang, I think it's very impossible that you can check mail at
>>> today(the day before wedding).
>>>
>>> So I want to send my thanks to you, and show our appreciation to your
>>> works,
>>> which connects us (not only perl lovers, but also people seeks truth and
>>> wisdom). Wish you a great wedding :)
>> >
>
>
> >
>




--
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Merry Wedding to Qiang

支持新郎官。哈哈。早开发个小宝宝玩。

2009/10/2, Qiang (James) <shijialee@gmail.com>:
>
> 谢谢各位 :)
>
> 没来的及感谢 Joe 参加我的婚礼,Thanks!
>
> 婚礼后发烧,现在康复中... :)
>
> Qiang
>
>
> 空格 wrote:
>> 新来的,恭喜一下!
>>
>> On 9月25日, 下午4时34分, joe jiang <lamp.p...@gmail.com> wrote:
>>> Dear qiang, I think it's very impossible that you can check mail at
>>> today(the day before wedding).
>>>
>>> So I want to send my thanks to you, and show our appreciation to your
>>> works,
>>> which connects us (not only perl lovers, but also people seeks truth and
>>> wisdom). Wish you a great wedding :)
>> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

2009年10月1日星期四

[PerlChina] Re: Merry Wedding to Qiang

谢谢各位 :)

没来的及感谢 Joe 参加我的婚礼,Thanks!

婚礼后发烧,现在康复中... :)

Qiang


空格 wrote:
> 新来的,恭喜一下!
>
> On 9月25日, 下午4时34分, joe jiang <lamp.p...@gmail.com> wrote:
>> Dear qiang, I think it's very impossible that you can check mail at
>> today(the day before wedding).
>>
>> So I want to send my thanks to you, and show our appreciation to your works,
>> which connects us (not only perl lovers, but also people seeks truth and
>> wisdom). Wish you a great wedding :)
> >


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 一个礼物

可以考虑 ASCII 码艺术,Perlmonk 上有人做过类似的,参见

http://perlmonks.org/?node_id=309253
http://perlmonks.org/?node_id=45213 著名的骆驼 ASCII 图案

或者是这个模块
http://search.cpan.org/dist/Acme-EyeDrops/lib/Acme/EyeDrops.pm

Qiang

Beckheng Lam wrote:
> 建议显示25个小心。 :-) :-D
>
> 辉郎 wrote:
>> 虽然没做过,但是一定得支持!只是用perl短时间能做的很炫吗?建议去google一些诸如烟花之类的背景效果:-P
>>
>>
>> 在 09-10-2,qingshui<xiongpersonal@gmail.com> 写道:
>>
>>> 最近在学习perl,我女朋友马上要过生日了,我突然想到用perl编个程序给她个惊喜。
>>> 我的想法是编个心字型,她今天是28岁生日,所以这个心字要用28个小心做成一个大的
>>> 心字型。当然这个程序是在没有perl解释器的情况下可以运行。
>>> 我现在开始编了,但是很想知道是否大家也有这样的经历没有?
>>> 供我参考一下。本人承诺,此程序的源码全部给大家公布,
>>> 我甚至还想到,是否可以编一个通用的程序,比如说多少个心,我们通过
>>> 参数可以控制,甚至,还可以有其他的图形,比如生日快乐的字样了。
>>> 很希望大家给我idea。
>>>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 一个礼物

建议显示25个小心。 :-) :-D

辉郎 wrote:
虽然没做过,但是一定得支持!只是用perl短时间能做的很炫吗?建议去google一些诸如烟花之类的背景效果:-P   在 09-10-2,qingshui<xiongpersonal@gmail.com> 写道:   
最近在学习perl,我女朋友马上要过生日了,我突然想到用perl编个程序给她个惊喜。 我的想法是编个心字型,她今天是28岁生日,所以这个心字要用28个小心做成一个大的 心字型。当然这个程序是在没有perl解释器的情况下可以运行。 我现在开始编了,但是很想知道是否大家也有这样的经历没有? 供我参考一下。本人承诺,此程序的源码全部给大家公布, 我甚至还想到,是否可以编一个通用的程序,比如说多少个心,我们通过 参数可以控制,甚至,还可以有其他的图形,比如生日快乐的字样了。 很希望大家给我idea。     
   


--  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 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 一个礼物

虽然没做过,但是一定得支持!只是用perl短时间能做的很炫吗?建议去google一些诸如烟花之类的背景效果:-P


在 09-10-2,qingshui<xiongpersonal@gmail.com> 写道:
> 最近在学习perl,我女朋友马上要过生日了,我突然想到用perl编个程序给她个惊喜。
> 我的想法是编个心字型,她今天是28岁生日,所以这个心字要用28个小心做成一个大的
> 心字型。当然这个程序是在没有perl解释器的情况下可以运行。
> 我现在开始编了,但是很想知道是否大家也有这样的经历没有?
> 供我参考一下。本人承诺,此程序的源码全部给大家公布,
> 我甚至还想到,是否可以编一个通用的程序,比如说多少个心,我们通过
> 参数可以控制,甚至,还可以有其他的图形,比如生日快乐的字样了。
> 很希望大家给我idea。
> >
>

--
从我的移动设备发送

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] 一个礼物

最近在学习perl,我女朋友马上要过生日了,我突然想到用perl编个程序给她个惊喜。
我的想法是编个心字型,她今天是28岁生日,所以这个心字要用28个小心做成一个大的
心字型。当然这个程序是在没有perl解释器的情况下可以运行。
我现在开始编了,但是很想知道是否大家也有这样的经历没有?
供我参考一下。本人承诺,此程序的源码全部给大家公布,
我甚至还想到,是否可以编一个通用的程序,比如说多少个心,我们通过
参数可以控制,甚至,还可以有其他的图形,比如生日快乐的字样了。
很希望大家给我idea。
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

2009年9月30日星期三

[PerlChina] 推荐一下Perl开发的项目管理系统

想找一个Perl开发的项目管理系统,有知道的推荐一下。 :-)

--
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 访问该论坛
-~----------~----~----~----~------~----~------~--~---

2009年9月29日星期二

[PerlChina] Re: 有个程序不是很理解,请大家给我指点一下

cnhack TNT,
谢谢你的详细讲解,我已经有所理解了。sub return是个子程序返回的子程序引用,而shift相当于shift@_数组,
或者说,子程序中参数传递还可以传给其他的非@_数组,甚至随便什么名称的变量,只要这个名称的变量是在
my或者local后面就行。
再次谢谢你的帮助!

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 有个程序不是很理解,请大家给我指点一下

这是一个闭包程序,Programming Perl里有讲解的。


//angel

-----Original Message-----
From: qingshui <xiongpersonal@gmail.com>
To: PerlChina Mongers 讨论组 <perlchina@googlegroups.com>
Sent: Wed, Sep 30, 2009 3:19 am
Subject: [PerlChina] 有个程序不是很理解,请大家给我指点一下

#!/usr/bin/perl
sub errorMsg{
my $lvl=shift;
# define the subroutine to run when called.
return sub{
my $msg=shift; #define the error type now.
print "Err Lever $lvl:$msg\n"}; #print later.
}
$severe=errorMsg("Severe");
$fatal=errorMsg("Fatal");
$annoy=errorMsg(Annoying);

&$severe("Divide by zero");
&$fatal("Did you forget to use a semi-colon?");
&$annoy("Uninitialized variable in use");

这个程序是在我看关于子程序的引用的时候,看到的,我看了以后,有两个E9题:
1. 有没有return sub 这样的语句啊,应该怎么理解?
2.子程序下定义的变量$lvl=shift,我不是很理解,而且return sub后面中又有
my $msg=shift;这个我也不懂
请大家帮我理解一下,多谢!


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 有个程序不是很理解,请大家给我指点一下

这是典型的闭包(Closure):

1. return sub {...} 是当然有的,sub {...} 是匿名子程序的引用,这里就是返回这个匿名子程序的引用
2. shift 就是取得传入这些子程序的第一个参数, 因为 perl 中传给子程序的参数是保存在 @_ 这个默认数组里的, $lvl=shift 其实就等价于
$lvl=shift @_;

举例说明:
   $severe=errorMsg("Severe");
此时,errorMsg("Severe"); 返回的就是一个匿名子程序引用,或者说匿名函数引用,这个匿名子程序的内容此时就相当于:
---------------------
sub {
     my $msg=shift;
     print "Err Lever Severe:$msg\n"}; # 前面 $lvl=shift 得到的就是传给 errorMsg() 的参数 "Severe"
}
---------------------


---------- Forwarded message ----------
From: qingshui <xiongpersonal@gmail.com>
Date: 2009/9/30
Subject: [PerlChina] 有个程序不是很理解,请大家给我指点一下
To: PerlChina Mongers 讨论组 <perlchina@googlegroups.com>


#!/usr/bin/perl
sub errorMsg{
  my $lvl=shift;
# define the subroutine to run when called.
  return sub{
     my $msg=shift; #define the error type now.
     print "Err Lever $lvl:$msg\n"}; #print later.
}
$severe=errorMsg("Severe");
$fatal=errorMsg("Fatal");
$annoy=errorMsg(Annoying);

&$severe("Divide by zero");
&$fatal("Did you forget to use a semi-colon?");
&$annoy("Uninitialized variable in use");

这个程序是在我看关于子程序的引用的时候,看到的,我看了以后,有两个问题:
1. 有没有return sub 这样的语句啊,应该怎么理解?
2.子程序下定义的变量$lvl=shift,我不是很理解,而且return sub后面中又有
my $msg=shift;这个我也不懂
请大家帮我理解一下,多谢!



--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] 有个程序不是很理解,请大家给我指点一下

#!/usr/bin/perl
sub errorMsg{
my $lvl=shift;
# define the subroutine to run when called.
return sub{
my $msg=shift; #define the error type now.
print "Err Lever $lvl:$msg\n"}; #print later.
}
$severe=errorMsg("Severe");
$fatal=errorMsg("Fatal");
$annoy=errorMsg(Annoying);

&$severe("Divide by zero");
&$fatal("Did you forget to use a semi-colon?");
&$annoy("Uninitialized variable in use");

这个程序是在我看关于子程序的引用的时候,看到的,我看了以后,有两个问题:
1. 有没有return sub 这样的语句啊,应该怎么理解?
2.子程序下定义的变量$lvl=shift,我不是很理解,而且return sub后面中又有
my $msg=shift;这个我也不懂
请大家帮我理解一下,多谢!
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

前言里说"本书能够提供一本书所能容纳的最大量的全部有关Perl的信息,"。从完整的语法到目前所能运用Perl的主要编程领域。
写得还算详细全面。被我当成Perl的字典来用。

On 9月28日, 下午8时27分, Michael Zeng <galaxy2...@gmail.com> wrote:
> 这样的,这本书主要讲啥
>
> 什么技术内幕,高级编程么?
>
>
> --
> Yours Sincerely
> Zeng Hong
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

2009年9月28日星期一

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

这样的,这本书主要讲啥
 
什么技术内幕,高级编程么?
 


 
2009/9/28 msmouse <msmouse@gmail.com>
是啊。。光想各种技巧一次搞定了 其实只要分若个pass统计就可以解决的
不过15位长的情况下确实还是能够在内存里面做到的,如果是只统计覆盖,不统计具体数目的话,内存还十分够用。。

----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com


2009/9/27 Huangj <redspid@163.com>

看了这个问题的回复,都不是十分靠谱,其实一个简单的办法就可以轻松搞定。

分而治之...


在2009-09-21,"Michael Zeng" <galaxy2004@gmail.com> 写道: 嗬嗬, 原来是搞生物的,

 
用hash好了
 
$hash{ $key} ++ ;
 
不知道你那个15长度的字符串怎么取的
 
 
2009/9/21 空格 <ribozyme2004@gmail.com>
有一个长度为4.8G的字符串,其中只有四种字母ATGC。按照排列组合数,这四个字母组成的长度为15字符串总共有1`073`741`824种可能性。我想统计一下,这个大字符串中是否包含了所有的长度为15的可能的字串。如果没有包含全部,那么有哪些字串的出现次数为零。

为此,我想需要建立一个很大的表,然后从那个超大的字符串中逐个取出长度为15的字串,然后在表中统计其出现次数。这样可以得到结果。我的问题是,这样大的表格,用散列写好还是用二维数组写比较好?或者有什么别的方式实现更可行一些。谢谢各位~--            Yours Sincerely                   Zeng Hong 
"中国制造",讲述中国60年往事



--
           Yours Sincerely
                   Zeng Hong

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: BioPerl 安装问题求助

还是不行啊,install Bundle::CPAN 时同样的问题:
....
cp lib/Archive/Tar/Constant.pm blib/lib/Archive/Tar/Constant.pm
cp lib/Archive/Tar.pm blib/lib/Archive/Tar.pm
cp lib/Archive/Tar/File.pm blib/lib/Archive/Tar/File.pm
cp bin/ptardiff blib/script/ptardiff
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/
ptardiff
cp bin/ptar blib/script/ptar
/usr/bin/perl "-MExtUtils::MY" -e "MY->fixin(shift)" blib/script/ptar
Can't locate Pod/Simple.pm in @INC (@INC contains: ....) at /usr/lib/
perl5/5.10.0/Pod/Man.pm line 35. <----还是这里没有那个Simple.pm
BEGIN failed--compilation aborted at /usr/lib/perl5/5.10.0/Pod/Man.pm
line 35.
Compilation failed in require at /usr/lib/perl5/5.10.0/ExtUtils/
Command/MM.pm line 92.
make: *** [manifypods] 错误 2
BINGOS/Archive-Tar-1.54.tar.gz
/usr/bin/make -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store
persistent state
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
....
最后是一堆make NO
ADAMK/Test-Script-1.06.tar.gz : make NO
ADAMK/File-Which-1.09.tar.gz : make NO
ADAMK/Archive-Zip-1.30.tar.gz : make NO
PMQS/IO-Compress-2.021.tar.gz : make NO
KANE/Package-Constants-0.02.tar.gz : make NO
BINGOS/Archive-Tar-1.54.tar.gz : make NO


cpan[9]>

On 9月28日, 下午6时13分, "Haiyan Lin" <linhy0...@gmail.com> wrote:
> 试试下面
>
> cpan> o conf prerequisites_policy follow
> cpan> o conf commit
> cpan> install Bundle::CPAN
> cpan> install Bundle::BioPerl
> cpan> install /BioPerl/
> cpan> install distribution_you_want
>
> ----- Original Message -----
> From: "空格" <ribozyme2...@gmail.com>
> To: "PerlChina Mongers 讨论组" <perlchina@googlegroups.com>
> Sent: Monday, September 28, 2009 5:26 PM
> Subject: [PerlChina] BioPerl 安装问题求助
>
> 用cpan安装bioperl遇到一个奇怪的问题。
> 程序提示要安装 module::build
> 然后在安装这个包的时候报错,说:
> Can't locate Pod/Simple.pm in @INC (@INC contains: ...) at /usr/lib/
> perl5/5.10.0/Pod/Man.pm line 35.
>
> 我以为是没有Pod::Simple这个包,就在cpan上找到了这个东西:
>
> cpan[7]> d /Pod-Simple/
> Distribution ARANDAL/Pod-Simple-3.08.tar.gz
> Distribution BORISZ/Pod-Simple-Text-Termcap-0.01.tar.gz
> Distribution CWEST/Pod-Simple-31337-0.02.tar.gz
> Distribution DSTAAL/Pod-Simple-Wiki-Wikka-0.09.tar.gz
> Distribution FAYLAND/Pod-Simple-Wiki-Googlecode-0.03.tar.gz
> Distribution JGOFF/Pod-Simple-LaTeX-0.06.tar.gz
> Distribution JMCNAMARA/Pod-Simple-Wiki-0.11.tar.gz
> Distribution PSHANGOV/Pod-Simple-Vim-0.02.tar.gz
> 8 items found
>
> 但是在安装这个Pod-Simple-3.08的时候,依然是这个报错:
>
> Can't locate Pod/Simple.pm in @INC (@INC contains: ....) at /usr/lib/
> perl5/5.10.0/Pod/Man.pm line 35.
> BEGIN failed--compilation aborted at /usr/lib/perl5/5.10.0/Pod/Man.pm
> line 35.
> Compilation failed in require at /usr/lib/perl5/5.10.0/ExtUtils/
> Command/MM.pm line 92.
> make: *** [manifypods] 错误 2
> ARANDAL/Pod-Simple-3.08.tar.gz
> /usr/bin/make -- NOT OK
> Warning (usually harmless): 'YAML' not installed, will not store
> persistent state
> Running make test
> Can't test without successful make
> Running make install
> Make had returned bad status, install seems impossible
> Failed during this command:
> SBURKE/Pod-Escapes-1.04.tar.gz : make NO
> ARANDAL/Pod-Simple-3.08.tar.gz : make NO
>
> 请问这是怎么回事。按说,我安装的就是这个Pod-Simple.pm 他怎么会提示说自己找不到自己?
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: BioPerl 安装问题求助

试试下面
 
cpan> o conf prerequisites_policy follow
cpan> o conf commit
cpan> install Bundle::CPAN
cpan> install Bundle::BioPerl
cpan> install /BioPerl/
cpan> install distribution_you_want
 
 
 
----- Original Message -----
From: "空格" <ribozyme2004@gmail.com>
To: "PerlChina Mongers 讨论组" <perlchina@googlegroups.com>
Sent: Monday, September 28, 2009 5:26 PM
Subject: [PerlChina] BioPerl 安装问题求助


用cpan安装bioperl遇到一个奇怪的问题。
程序提示要安装 module::build
然后在安装这个包的时候报错,说:
Can't locate Pod/Simple.pm in @INC (@INC contains: ...) at /usr/lib/
perl5/5.10.0/Pod/Man.pm line 35.

我以为是没有Pod::Simple这个包,就在cpan上找到了这个东西:

cpan[7]> d /Pod-Simple/
Distribution    ARANDAL/Pod-Simple-3.08.tar.gz
Distribution    BORISZ/Pod-Simple-Text-Termcap-0.01.tar.gz
Distribution    CWEST/Pod-Simple-31337-0.02.tar.gz
Distribution    DSTAAL/Pod-Simple-Wiki-Wikka-0.09.tar.gz
Distribution    FAYLAND/Pod-Simple-Wiki-Googlecode-0.03.tar.gz
Distribution    JGOFF/Pod-Simple-LaTeX-0.06.tar.gz
Distribution    JMCNAMARA/Pod-Simple-Wiki-0.11.tar.gz
Distribution    PSHANGOV/Pod-Simple-Vim-0.02.tar.gz
8 items found


但是在安装这个Pod-Simple-3.08的时候,依然是这个报错:

Can't locate Pod/Simple.pm in @INC (@INC contains: ....) at /usr/lib/
perl5/5.10.0/Pod/Man.pm line 35.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.10.0/Pod/Man.pm
line 35.
Compilation failed in require at /usr/lib/perl5/5.10.0/ExtUtils/
Command/MM.pm line 92.
make: *** [manifypods] 错误 2
  ARANDAL/Pod-Simple-3.08.tar.gz
  /usr/bin/make -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store
persistent state
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible
Failed during this command:
 SBURKE/Pod-Escapes-1.04.tar.gz               : make NO
 ARANDAL/Pod-Simple-3.08.tar.gz               : make NO


请问这是怎么回事。按说,我安装的就是这个Pod-Simple.pm 他怎么会提示说自己找不到自己?


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] BioPerl 安装问题求助

用cpan安装bioperl遇到一个奇怪的问题。
程序提示要安装 module::build
然后在安装这个包的时候报错,说:
Can't locate Pod/Simple.pm in @INC (@INC contains: ...) at /usr/lib/
perl5/5.10.0/Pod/Man.pm line 35.

我以为是没有Pod::Simple这个包,就在cpan上找到了这个东西:

cpan[7]> d /Pod-Simple/
Distribution ARANDAL/Pod-Simple-3.08.tar.gz
Distribution BORISZ/Pod-Simple-Text-Termcap-0.01.tar.gz
Distribution CWEST/Pod-Simple-31337-0.02.tar.gz
Distribution DSTAAL/Pod-Simple-Wiki-Wikka-0.09.tar.gz
Distribution FAYLAND/Pod-Simple-Wiki-Googlecode-0.03.tar.gz
Distribution JGOFF/Pod-Simple-LaTeX-0.06.tar.gz
Distribution JMCNAMARA/Pod-Simple-Wiki-0.11.tar.gz
Distribution PSHANGOV/Pod-Simple-Vim-0.02.tar.gz
8 items found


但是在安装这个Pod-Simple-3.08的时候,依然是这个报错:

Can't locate Pod/Simple.pm in @INC (@INC contains: ....) at /usr/lib/
perl5/5.10.0/Pod/Man.pm line 35.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.10.0/Pod/Man.pm
line 35.
Compilation failed in require at /usr/lib/perl5/5.10.0/ExtUtils/
Command/MM.pm line 92.
make: *** [manifypods] 错误 2
ARANDAL/Pod-Simple-3.08.tar.gz
/usr/bin/make -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store
persistent state
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
SBURKE/Pod-Escapes-1.04.tar.gz : make NO
ARANDAL/Pod-Simple-3.08.tar.gz : make NO


请问这是怎么回事。按说,我安装的就是这个Pod-Simple.pm 他怎么会提示说自己找不到自己?

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Merry Wedding to Qiang

GongXi, Bai Tou Xie Lao!

//angelflower


-----Original Message-----
From: joe jiang <lamp.purl@gmail.com>
To: Qiang (James) <shijialee@gmail.com>; perlchina <perlchina@googlegroups.com>
Sent: Fri, Sep 25, 2009 4:34 pm
Subject: [PerlChina] Merry Wedding to Qiang

Dear qiang, I think it's very impossible that you can check mail at today(the day before wedding).

So I want to send my thanks to you, and show our appreciation to your works, which connects us (not only perl lovers, but also people seeks truth and wisdom). Wish you a great wedding :)


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

2009年9月27日星期日

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

是啊。。光想各种技巧一次搞定了 其实只要分若个pass统计就可以解决的
不过15位长的情况下确实还是能够在内存里面做到的,如果是只统计覆盖,不统计具体数目的话,内存还十分够用。。
----------------------------------
msmouse@ir.hit.edu.cn
msmouse@gmail.com


2009/9/27 Huangj <redspid@163.com>
看了这个问题的回复,都不是十分靠谱,其实一个简单的办法就可以轻松搞定。

分而治之...


在2009-09-21,"Michael Zeng" <galaxy2004@gmail.com> 写道: 嗬嗬, 原来是搞生物的,

 
用hash好了
 
$hash{ $key} ++ ;
 
不知道你那个15长度的字符串怎么取的
 
 
2009/9/21 空格 <ribozyme2004@gmail.com>
有一个长度为4.8G的字符串,其中只有四种字母ATGC。按照排列组合数,这四个字母组成的长度为15字符串总共有1`073`741`824种可能性。我想统计一下,这个大字符串中是否包含了所有的长度为15的可能的字串。如果没有包含全部,那么有哪些字串的出现次数为零。

为此,我想需要建立一个很大的表,然后从那个超大的字符串中逐个取出长度为15的字串,然后在表中统计其出现次数。这样可以得到结果。我的问题是,这样大的表格,用散列写好还是用二维数组写比较好?或者有什么别的方式实现更可行一些。谢谢各位~--            Yours Sincerely                   Zeng Hong 
"中国制造",讲述中国60年往事


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

已给您回复信件。我只有纸版,是四年前在福州路上海书城买的。今年年初我还在那里看到过。就是5楼(还是6楼来着)那个专门卖计算机类书籍的楼层。电梯
上去右拐服务台对面第三个还是第四个书架上就是。大概位置是这样:


| PERL!
| 过
--------- 书架

书架
-----
|电梯 | ____ 过
| | 服 |
| | 务 |
| | 台 | 道

On 9月26日, 下午9时47分, Michael Zeng <galaxy2...@gmail.com> wrote:
> 那本书有电子版么, 发给我看好么
>
> 2009/9/26 空格 <ribozyme2...@gmail.com>
>
> > 这个还真不知道。。。看Perl技术内幕上说的,each 的特点是能同时得到键和值,而keys函数只有一个模糊的评价:"很棒的"。。。
>
> > On 9月25日, 下午11时04分, Michael Zeng <galaxy2...@gmail.com> wrote:
> > > 书上说, hash大了,用each 来遍历, 即
> > > while ( ($key,$val) = each(%hash) ) {
>
> > > 是不是真的效率高很多? 要多大的hash 用each 才有效果?
>
> > > --
> > > Yours Sincerely
> > > Zeng Hong
>
> --
> Yours Sincerely
> Zeng Hong
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

是啊,4G内存算到12就是极限了。算13就会内存溢出。。。要算长字串的话还得看您那个的C++实现了,呵呵。。。

On 9月27日, 下午12时46分, agentzh <agen...@gmail.com> wrote:
> 2009/9/25 空格 <ribozyme2...@gmail.com>
>
> > 程序里用的还是一个散列,如前面各位说的,它对内存的消耗非常大。目前看,计算12核苷酸(12bp)长度的串使用了2G左右的内存。计算10bp串使
> > 用大约800M内存。我还没有算13bp的情况。truncatei 说的调整为整型的那个我还没有加上去。
>
> 这种容易组合爆炸的问题,最好还是不要用 Perl 了。。。Python/Ruby 应当也是类似的,呵呵。。。考虑到 Perl
> 散列底层的数据结构的实现,那个 RAM 占用太铺张了,哈哈!
>
> Cheers,
> -agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

BitArray我不熟,不过这个同构异形体好象还不太一样。。。
比如我们设定散列:
my %code_of = (
A => 0,
G => 1,
C => 2,
T => 3
);

这样确实可以满足A(00)和T(11)互补以及G(01)和C(10)互补。但是核甘酸序列的书写是有方向的,生物化学中的叫法是从5撇端向3撇端方
向。彼此为互补链的两条序列书写时的方向要反过来。
比如一个四核甘酸:ATAC。对应的互补序列是GTAT而不是TATG。因为他的互补时的方向是这样的:
|-ATAC->
||||
<-TATG-|

这里"|-" 表示DNA链的开始方向,箭头"->"表示链终止方向。竖线表示上下两个核甘酸可以按照碱基互补原则配对。
专业一点的写法是这样:
5`-ATAC-3`
||||
3`-TATG-5`

为了省事,大家约定书写核甘酸序列都按从5撇到3撇的方向写。所以3`-TATG-5`的简写就是GTAT,完整写出来是5`-GTAT-3`
所以,ATAC的位运算表示是00110010,其互补链GTAT是01110011
这个和你说的同构异形还要加一个字符串反向的步骤。

在我写的那个脚本里是按照"先反向再替换"来得到互补链的:

$str[0] = uc( substr($seq,$i,$len) ); #从序列中截取一个短串
$str[1] = lc( reverse($str[0]) ); #先反向
$str[1] =~ s{a}{T}g;
$str[1] =~ s{t}{A}g;
$str[1] =~ s{g}{C}g;
$str[1] =~ s{c}{G}g; #以上以此替换,得到互补链


On 9月27日, 下午12时35分, agentzh <agen...@gmail.com> wrote:
> 2009/9/25 空格 <ribozyme2...@gmail.com>
>
> > 简单说,就是找到一个15bp串的时候,要同时把这个序列掉个,再按照AT互补GC互补的情况处理。生成的序列同样是应该考虑的一种情况。
>
> 这个可以在向 BitArray 注册序列时,把其"同构异形体也一并注册了 :) 在输出比特为 0 的对应序列的过程中,亦可将当前输出序列的同构异形体也在
> BitArray 中注册为比特 1,这样后面就不会重复输出了。所以应当是加几行 C++ 代码的交情,哈哈!不知道我说的对不对?
>
> Cheers,
> -agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Jifty Model表示的语法是用的哪个模块?

看了一下Object::Declare,感觉这类可读性较高的语法比较适合啵(比我用HASH和ARRYA复合的数据结构要好看得多 ;-) )。试着用一下,居然老是编译不通过。 >:o


agentzh wrote:
2009/9/26 Beckheng Lam <bi.ken.lam@gmail.com>
是 不是用了Moose的?
还是其它?


应当基于 Audrey 的 Object::Declare 吧?呵呵。我在 XUL::App 中也利用了这种语法糖。原本这次 BJPW 想在 DSL talk 中介绍这些东东的,但这个 talk 被 qiang 压到明年了。。。哈哈!

Cheers,
-agentzh



--  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 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 版本perl 5.10语法特性请教!

看 第5 版 Learning Perl
 
5.10 比5.8 就是几个更新:
1)增加分支关键字 : given/when  , 增加say 函数,
2)  增加有名记忆, 在regex里面:\{name}  
3)  增加智能匹配:~~
 


 
2009/9/27 joe jiang <lamp.purl@gmail.com>
perldoc feature

2009/9/26 <123456fuzhong@sohu.com>


Hi,all!

 

 

   最近小弟在用perl5.10版写脚本,很想了解其最新的语法特性,请问在perl哪个文档中可以了解到其详细用法及变更?小弟使用perl的时间不长,我看了一下perl 5。10自带的perl5100delta,上面只讲到有哪些更新,没有具体用法!哪位老大曾看过这个文档,望给点儿提示。




你的搜狐好友邀你领取“神秘礼包”
抽奖换礼,好运有你!




--
           Yours Sincerely
                   Zeng Hong

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

看了这个问题的回复,都不是十分靠谱,其实一个简单的办法就可以轻松搞定。

分而治之...


在2009-09-21,"Michael Zeng" <galaxy2004@gmail.com> 写道: 嗬嗬, 原来是搞生物的,
 
用hash好了
 
$hash{ $key} ++ ;
 
不知道你那个15长度的字符串怎么取的
 
 
2009/9/21 空格 <ribozyme2004@gmail.com>
有一个长度为4.8G的字符串,其中只有四种字母ATGC。按照排列组合数,这四个字母组成的长度为15字符串总共有1`073`741`824种可能性。我想统计一下,这个大字符串中是否包含了所有的长度为15的可能的字串。如果没有包含全部,那么有哪些字串的出现次数为零。
为此,我想需要建立一个很大的表,然后从那个超大的字符串中逐个取出长度为15的字串,然后在表中统计其出现次数。这样可以得到结果。我的问题是,这样大的表格,用散列写好还是用二维数组写比较好?或者有什么别的方式实现更可行一些。谢谢各位~--            Yours Sincerely                   Zeng Hong 
"中国制造",讲述中国60年往事 --~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

2009/9/27 TBY <tangboyun@hotmail.com>
其实我觉得可以直接用16进制来计算,1个16进制数可以代表相邻2个碱基的所有组合可能,15个字符,可以转化为8个0-F的字符串。麻烦的地方在于
需要把4.8g的字串作两次转换。分别将奇数和偶数元素转换成字符串,然后约定各种8字符字符串去找吧。


一个 16 进制数可以表示 4 个比特,即 2 个碱基。而 ascii 形式的 16 进制数则需要一个字节,即 8 个比特。从空间效率上讲,多用了一倍的空间,呵呵。而且 ascii 形式的序列在这里确实没有原始二进制的序列处理起来方便 ;)

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

口误,是从第一个碱基做转换和第二个碱基做转换,这样,所有4.8g字串可以分割成2个2.4g字串,分别对这两个做8字符串比对,就可以得到原先的所
有4.8g的碱基组合。

On 9月27日, 下午3时56分, TBY <tangbo...@hotmail.com> wrote:
> 其实我觉得可以直接用16进制来计算,1个16进制数可以代表相邻2个碱基的所有组合可能,15个字符,可以转化为8个0-F的字符串。麻烦的地方在于
> 需要把4.8g的字串作两次转换。分别将奇数和偶数元素转换成字符串,然后约定各种8字符字符串去找吧。
>
> On 9月23日, 上午11时17分, msmouse <msmo...@gmail.com> wrote:
>
>
>
> > 就是这个意思。前面agentzh说:
> > "事先约定 A,T,G,C 分别对应 00, 01, 10, 11,即 2 个比特的数值。"
> > 即用两个位表示一个字符,15个字符即是30位。30个二进制位即是15个4进制位
> > ----------------------------------
> > msmo...@ir.hit.edu.cn
> > msmo...@gmail.com
>
> > 2009/9/23 Jester <jes...@perlchina.org>
>
> > > "基因组字串的分布应该还是比较均匀的。因为它很接近随机序列"----这样的说法很不严谨!我相信这不是你真实的想法,但是这样的表述会误导很多人。任何一个--物种的基因组序列都不会是ATCG的随机排布!
>
> > > 我感觉前面有人讨论的建议的使用位运算应该是会比较节约的做法,但具体的实现我也不会。
> > > 我有个不太成熟的想法,不太知道数组的存储是否会比hash节约?如果是,到底能节约多少?(请高手指教)
> > > 我的想法是把ATCG用0123代替,然后看作是一个4进制的数,这样可以很容易转换成一个数值,也就是数组的下标,如此对应。
> > > 当然,如果数组的开销还是很大,就不行了......
>
> > > 我不知道你在哪个实验室,国内应该有不少做类似分析的人,郝先生今年刚发在NAR webserverissue上的CVTree本质上就是分析这个。
> > > 说到底用C还是最高效的,不过用perl尝试一下也挺好。我也是丢了C很多年了,执着的perler ^_^
> > > 请高手再指点吧,我也想提高一下coding技巧。
>
> > > Jester,jes...@perlchina.org
> > > 2009-09-23
> > > ----- Original Message -----
> > > From: 空格
> > > To: PerlChina Mongers 讨论组
> > > Sent: 2009-09-22, 23:33:47
> > > Subject: [PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?
>
> > > >原来是这个意思。。。。
> > > >基因组字串的分布应该还是比较均匀的。因为它很接近随机序列。cache的效果如何很难说。。。
> > > >我原来想的就是用简单的文本文件处理。
> > > >因为hash表会按键值排序,所以相似的字串在文本上比较也会比较容易些吧。
>
> > > >On 9月22日, 下午6时44分, msmouse wrote:
> > > >> 比如sqlite。。
>
> > > 这个想法就是把这个内存放不下的数组放在硬盘上。由于这1G种不同组合很可能不是均匀分布的,也就是说其中某些更经常出现,那么如果存储引擎有cache的话,---就可以加快访问。但是实际的效果怎么样没有试就不好说,因为在这个问题里数据访问频度虽然很可能不均匀,但是也是没有什么局部性的,如果是按块的cache-(-比-如OS本身的disk
> > > >> cache)对这种应用的效果可能就不大理想,因为相邻访问之间涉及的地址不是连续的,cache必须不停换页。
> > > >> ----------------------------------
> > > >> msmo...@ir.hit.edu.cn
> > > >> msmo...@gmail.com
>
> > > >> 2009/9/22 空格
>
> > > >> > 抱歉你说的这个"带cache的嵌入式数据库"我不懂。具体是什么,在cpan上有包么?
>
> > > >> > On 9月22日, 下午1时08分, msmouse wrote:
> > > >> > > 同意 C++的用一个vector或者bitset就搞定了,不需要自己做位计算,只需要125M内存 哈哈
>
> > > >> > > 如果要perl并且需要计数的话,考虑用一个带有cache的嵌入式数据库即可。。前面也提到了吧?
>
> > > >> > > ----------------------------------
> > > >> > > msmo...@ir.hit.edu.cn
> > > >> > > msmo...@gmail.com
>
> > > >> > > 2009/9/22 agentzh
>
> > > >> > > > 2009/9/22 agentzh
>
> > > >> > > >> 嗯嗯嗯,忘了是有重复元素的列表了。。。哈哈,多谢指正。总排列数确实是 4^15 :) 每一个位子都只有 4 种可能性,便是
> > > >> > 4*4*4*...*4
> > > >> > > >> 这 15 个 4 相乘。为避免存储各个 key,将 key 作 hash 到一个 int32 整数,便只有 4 个字节。
>
> > > >> > > > 当然,我在写上一封邮件的时候其实并不知道这样的 hash 函数是否好写。。。呵呵,应该是好写的:
>
> > > >> > > > 1. 事先约定 A,T,G,C 分别对应 00, 01, 10, 11,即 2 个比特的数值。
> > > >> > > > 2. 然后把当前的15长度的串顺序地两个比特两个比特地编码,最终得到的值便是我们要的 hash 后的数值。
> > > >> > > > 3. 接着用它去下标访问我们的 1G 大小的位数组,这个寻址当是极快的。置比特也当是极快的。
> > > >> > > > 4. 最后,我们遍历这个 1G 位数组,找出比特为 0 的下标,再还原为 ATGC 形式的碱基序列,便是从未出现过的 15
> > > >> > 长度的串了,呵呵。
>
> > > >> > > > 这里我们就不关心出现的 15 长度序列的具体次数了。只记录出现过或者未出现过。这样 2 GB RAM 的机器是很够的了 ;)
>
> > > >> > > > 不知这个是否靠谱?哈哈?
>
> > > >> > > > Cheers,
> > > >> > > > -agentzh- 隐藏被引用文字 -
>
> > > >> - 显示引用的文字 -- 隐藏被引用文字 -
>
> > - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?

其实我觉得可以直接用16进制来计算,1个16进制数可以代表相邻2个碱基的所有组合可能,15个字符,可以转化为8个0-F的字符串。麻烦的地方在于
需要把4.8g的字串作两次转换。分别将奇数和偶数元素转换成字符串,然后约定各种8字符字符串去找吧。

On 9月23日, 上午11时17分, msmouse <msmo...@gmail.com> wrote:
> 就是这个意思。前面agentzh说:
> "事先约定 A,T,G,C 分别对应 00, 01, 10, 11,即 2 个比特的数值。"
> 即用两个位表示一个字符,15个字符即是30位。30个二进制位即是15个4进制位
> ----------------------------------
> msmo...@ir.hit.edu.cn
> msmo...@gmail.com
>
> 2009/9/23 Jester <jes...@perlchina.org>
>
>
>
>
>
> > "基因组字串的分布应该还是比较均匀的。因为它很接近随机序列"----这样的说法很不严谨!我相信这不是你真实的想法,但是这样的表述会误导很多人。任何一个-物种的基因组序列都不会是ATCG的随机排布!
>
> > 我感觉前面有人讨论的建议的使用位运算应该是会比较节约的做法,但具体的实现我也不会。
> > 我有个不太成熟的想法,不太知道数组的存储是否会比hash节约?如果是,到底能节约多少?(请高手指教)
> > 我的想法是把ATCG用0123代替,然后看作是一个4进制的数,这样可以很容易转换成一个数值,也就是数组的下标,如此对应。
> > 当然,如果数组的开销还是很大,就不行了......
>
> > 我不知道你在哪个实验室,国内应该有不少做类似分析的人,郝先生今年刚发在NAR webserverissue上的CVTree本质上就是分析这个。
> > 说到底用C还是最高效的,不过用perl尝试一下也挺好。我也是丢了C很多年了,执着的perler ^_^
> > 请高手再指点吧,我也想提高一下coding技巧。
>
> > Jester,jes...@perlchina.org
> > 2009-09-23
> > ----- Original Message -----
> > From: 空格
> > To: PerlChina Mongers 讨论组
> > Sent: 2009-09-22, 23:33:47
> > Subject: [PerlChina] Re: 在我遇到的这种情况下散列和数组哪个快?
>
> > >原来是这个意思。。。。
> > >基因组字串的分布应该还是比较均匀的。因为它很接近随机序列。cache的效果如何很难说。。。
> > >我原来想的就是用简单的文本文件处理。
> > >因为hash表会按键值排序,所以相似的字串在文本上比较也会比较容易些吧。
>
> > >On 9月22日, 下午6时44分, msmouse wrote:
> > >> 比如sqlite。。
>
> > 这个想法就是把这个内存放不下的数组放在硬盘上。由于这1G种不同组合很可能不是均匀分布的,也就是说其中某些更经常出现,那么如果存储引擎有cache的话,--就可以加快访问。但是实际的效果怎么样没有试就不好说,因为在这个问题里数据访问频度虽然很可能不均匀,但是也是没有什么局部性的,如果是按块的cache(-比-如OS本身的disk
> > >> cache)对这种应用的效果可能就不大理想,因为相邻访问之间涉及的地址不是连续的,cache必须不停换页。
> > >> ----------------------------------
> > >> msmo...@ir.hit.edu.cn
> > >> msmo...@gmail.com
>
> > >> 2009/9/22 空格
>
> > >> > 抱歉你说的这个"带cache的嵌入式数据库"我不懂。具体是什么,在cpan上有包么?
>
> > >> > On 9月22日, 下午1时08分, msmouse wrote:
> > >> > > 同意 C++的用一个vector或者bitset就搞定了,不需要自己做位计算,只需要125M内存 哈哈
>
> > >> > > 如果要perl并且需要计数的话,考虑用一个带有cache的嵌入式数据库即可。。前面也提到了吧?
>
> > >> > > ----------------------------------
> > >> > > msmo...@ir.hit.edu.cn
> > >> > > msmo...@gmail.com
>
> > >> > > 2009/9/22 agentzh
>
> > >> > > > 2009/9/22 agentzh
>
> > >> > > >> 嗯嗯嗯,忘了是有重复元素的列表了。。。哈哈,多谢指正。总排列数确实是 4^15 :) 每一个位子都只有 4 种可能性,便是
> > >> > 4*4*4*...*4
> > >> > > >> 这 15 个 4 相乘。为避免存储各个 key,将 key 作 hash 到一个 int32 整数,便只有 4 个字节。
>
> > >> > > > 当然,我在写上一封邮件的时候其实并不知道这样的 hash 函数是否好写。。。呵呵,应该是好写的:
>
> > >> > > > 1. 事先约定 A,T,G,C 分别对应 00, 01, 10, 11,即 2 个比特的数值。
> > >> > > > 2. 然后把当前的15长度的串顺序地两个比特两个比特地编码,最终得到的值便是我们要的 hash 后的数值。
> > >> > > > 3. 接着用它去下标访问我们的 1G 大小的位数组,这个寻址当是极快的。置比特也当是极快的。
> > >> > > > 4. 最后,我们遍历这个 1G 位数组,找出比特为 0 的下标,再还原为 ATGC 形式的碱基序列,便是从未出现过的 15
> > >> > 长度的串了,呵呵。
>
> > >> > > > 这里我们就不关心出现的 15 长度序列的具体次数了。只记录出现过或者未出现过。这样 2 GB RAM 的机器是很够的了 ;)
>
> > >> > > > 不知这个是否靠谱?哈哈?
>
> > >> > > > Cheers,
> > >> > > > -agentzh- 隐藏被引用文字 -
>
> > >> - 显示引用的文字 -- 隐藏被引用文字 -
>
> - 显示引用的文字 -
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---