标签:isa 分隔符 输入 oba one 二次 括号 显示 tar
#!/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
标签:isa 分隔符 输入 oba one 二次 括号 显示 tar
原文地址:http://www.cnblogs.com/xf666/p/7003817.html