Re: [PerlChina] Re: Perl内部机制

2012-07-04 文章 De-Jian Zhao
这个可以理解。我是想了解更多关于Perl语言本身机制的东西,不知道有没有什么 资料可推荐,能有下载链接就更好了。 On 2012-7-4 15:43, climby wrote: > /这个就要讲到Perl的变量的命名规范了。变量只能以字符 或者下划线开头。/ > /显然空格是不能作为变量的开头的。因此 $ a = $a 的。 验证如下/ > / > / > /$perl -e '$a=1; print "true\n" if ($ a == $a)'/ > /true > / > 所以这个就很容易解释你所得到的那些结果了。 其实不是print函数参数列表中 > 空格的缘故哦。 > > >

[PerlChina] Perl内部机制

2012-07-04 文章 De-Jian Zhao
函数与参数列表间可以有空格,这在小骆驼中提到了。 $ perl -e ' print (2+3) x 3 ' 5 $ perl -e ' print ((2+3) x 3) ' 555 但是,sigil与变量名之间也可以有空格,这语法太灵活太松散了吧? $ perl -e '$a=1; print $ a; ' 1 $ perl -e '$a=1; print $ a + $ a; ' 2 $ perl -e '$a=1; print $ a + $ ab; ' 1 $ perl -e '$ a=1; print $a + $ a; ' 2 Perl中如何来实现的?语句应当是根据分号

Re: [PerlChina] 如何选择子例程返回值?

2012-07-01 文章 De-Jian Zhao
非常感谢! On 2012-7-1 23:16, Robin Lee wrote: > 要自己实现上下文相关的函数,就是靠 perldoc -f wantarray > > > Perl 的函数实际上是无法返回 hash 值的,只能返回 scalar 和 list 。 > return %hash; > 实际上是 > my @list = %hash; > return @list; > > 所以,不要写返回 hash 的函数,要返回 hash 总是使用 reference。 > > 2012/7/1 De-Jian

[PerlChina] 如何选择子例程返回值?

2012-06-30 文章 De-Jian Zhao
各位好,请教一个问题。最近写了一个subroutine,尝试了两种方法,主要区别是 子例程的返回值不同。一个是返回hash reference(方法1),一个是直接返回 hash(方法2)。在运行时感觉方法2会稍有停顿。因此,想问一个问题:方法2 中%fasseq在接收子 例程的返回值时是不是要复制一份结果,并不是直接操作子例 程中的那块内存地址?方法1中my %fasseq = %$fasseq;是不是直接把地址传 给%fasseq进行操作?应当如何设置这个返回值? 还有一个问题是:Perl自带的函数根据上下文的不同可以返回scalar或者list,自 己写子例程时如何实现

[PerlChina] linux下收发邮件

2012-03-31 文章 De-Jian Zhao
背景:手机开通了上网功能,可以使用安卓平台下的ConnectBot程序ssh连接到 linux cluster上。想通过手机来进行一些操作,这样人身就比较自由,不必非待 在办公室了。 目的:通过手机上cluster,检查提交的计算任务是否完成,如果完成,则将结果 打包压缩,然后作为附件直接发送给别人,同时抄送一份到自己的 163邮箱,别人 回复邮件的时候回复到linux server邮箱,并且也抄送一份儿到我的163邮箱。 问题:使用sendmail无法发送邮件;在linux下不知道用哪个命令收邮件;不清楚 当前配置下还需不需要安装其他程序。 另外,这个cluster是

Re: [PerlChina] 一句很妙的perl腳本(通過正則表達式判斷素數)

2011-11-26 文章 De-Jian Zhao
算法非常巧妙!将数学问题转化成了文字匹配问题,正好发挥regex长处。 On 2011-11-26 18:22, Shou Ya wrote: > 在perl1line上看到的: > > > # Check if a number is a prime > perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print "$_ is prime"' > > > 分析了一下,它先把一��字符(�@�Y是'1')重�}多次,��成一��字串。 > > 然後�δ���正�t表�_式�M行,匹配,那��正�t�碛�部分,前面是匹配'1'或者'',也就是��