perl_来来来,解读一个小程序

Posted 小方666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl_来来来,解读一个小程序相关的知识,希望对你有一定的参考价值。

#!/usr/bin/perl -w
#by www.yiibai.com

@array = qw(This is a list of words without interpolation);

foreach $key (@array){
   print"Key is $key\\n";
}

第一:qw是什么?

解答:简单说,可以使用qw()准备一个数组。例如,qw(foo bar baz) 相当于 (\'foo\', \'bar\', \'baz\')。一些程序员认为,使用qw使Perl脚本更容易阅读。实际上,你可以使用任何分隔符,而不仅仅是括号组。

另外,在perl语言中,还有一个和qw比较像的qq,也解释一下qq:

qq{foobar}相当于 "foobar" ;

它的的意思为双引号字符串,可内插变量;

qw{foo bar}相当于\'foo\',\'bar\' ;

它的意思为用空格分解字符串,得到列表,相当于split(\' \',\'foo bar\') 

字符串比较等于用 eq 

q运算符对\'号转义的方式

$someword = \'i \\\'ve some money\';    可以等价于:   $someword = q~i \'ve some money~;

qq运算符对"号转义的方式  $someword = "i say \\"ok!\\".";  可以等价于:    $someword = qq~i say "ok!".~; 

qw代表用空格来分隔元素,得到列表  @list = ("perl","Regular","network","web");    可以等价于:    @list = qw(perl Regular network web); 

 


 

 

啥事foreach?

Perlforeach从列表(数组)的第一个元素一直循环执行到最后一个元素,一次迭代一个。

foreach $key (@array){
   print"Key is $key\\n";
}

 

控制变量(本例中为$key)每一次迭代从列表中取出一个新值。第一次为“This”,第二次为“is”,以此类推。

控制变量不是这些列表元素中的一个拷贝而是这些元素本身。

这就意味着,hiahia~也就是说我手里的不是你的影子,而是你的真身!一旦在我手里,我改变了你,你就真的会被改变;

如果在循环中修改这个变量,那原始列表中的元素也会被修改。

下面显示运行结果;

 

在考虑一个问题,当循环结束后,$key的值是什么?

其值和循环开始之前是一样的。Perl foreach循环中控制变量的值会被Perl自动保存和恢复。当循环进行时,是没有办法改变其值的。循环结束时,变量的值会回到循环开始前,如果没有值,则为undef。这意味着如果有一个变量和控制变量有相同的名字:“$key”,不用担心会混淆它们。但最好不要这样做,否则维护你代码的人会打你。

 

Key is This
Key is is
Key is a
Key is list
Key is of
Key is words
Key is without
Key is interpolation

考虑这个例子,对输入进行foreach操作:

Perl foreach(<STDIN>)  
{  
print“Isaw$_”;  
} 

在Perl foreach循环中,由于行输入操作在列表的context中使用,因为Perl foreach需要一个列表作为其参数。

因此,它在循环执行前会将所有的输入读入,而每一行作为列表的一个元素:

 


 

更多信息: https://my.oschina.net/liangzi1210/blog/120789

http://www.cnblogs.com/tobecrazy/archive/2013/06/28/3161784.html

http://www.yiibai.com/perl/perl_qw.html

http://developer.51cto.com/art/201007/214100.html

http://www.cnblogs.com/chip/p/4188557.html

以上是关于perl_来来来,解读一个小程序的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序视图层WXML_模板

Perl程序性能调试之dprofpp

如何有条件地将 C 代码片段编译到我的 Perl 模块?

微信小程序代码片段

大家来来一个小递归函数删除目录!!!!!

微信小程序组件解读和分析:十picker滚动选择器