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

时间: 2025-01-18 13:17:05

perl_来来来,解读一个小程序的相关文章

我看小程序系列文章:1 不一样的角度 解读微信小程序

大家好,我是Beta007. 最近一直在研究小程序,会在这里整理出一系列的文章,和大家交流. 第一篇文章首发在了知乎专栏:小楼昨夜又秋风:https://zhuanlan.zhihu.com/p/22891188 知乎ID:七月在夏天  (头像是只喵~) 不一样的角度 解读微信小程序 七月在夏天· 2 天前 前段时间看完了雨果奖中短篇获奖小说<北京折叠>.很有意思的是,张小龙最近也要把应用折叠到微信里,这些应用被他称为:小程序. 含着金钥匙的小程序,还未展现全貌,就已经成了开发界的头条大事儿.

关于链表的一个小程序

关于链表的一个小程序: /**************************链表*****************************//* 具备功能 *//* 链表按元素位置插入 *//* 链表按元素位置删除 *//* 链表全表遍历 *//* 链表整表创建(头插法) *//* 链表整表创建(尾插法) *//* 链表整表删除 *//**************************链表*****************************/ #include<stdio.h>#in

原创观点:还在认为企业或个人只能申请一个小程序吗?

今天第一次体验了整个小程序注册流程,使用的是我自己的这个简单的教程(个人无appid如何进行申请开发者权限,简单操作步骤),教程虽然是我的,我自己却没有真的实践过,真是误人子弟,自己也不一定能知道:今天亲自测试了一下:首先走完邮箱验证: 验证完毕后,开始进入信息登录,这里,有一些关键信息,是本文观点的主要支撑: 请输入管理员的身份证号码,一个身份证号码只能注册5个小程序. 然后填写完毕后,到了第二个关键点: 为了验证你的身份,请用绑定了管理员本人银行卡的微信扫描二维码. 这个点,透露了两个信息,

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的

Python 练习册,每天一个小程序

Python 练习册,每天一个小程序 说明: Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也适用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 点此链接,会看到每个题目的代码, 欢迎大家 Pull Request 出题目,贴代码(Gist.Blog皆可):-) 本文本文由@史江歌([email protected] QQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享.鸣谢!本文会不断更新. Talk is chea

Python练习册,每天一个小程序

Python练习册,每天一个小程序 精选评论关注该公众号可参与评论 写评论 加载中 以上评论由公众帐号筛选后显示 Python练习册,每天一个小程序 提交 我的评论 已评论 Python练习册,每天一个小程序 2014-12-15 程序猿 说明: ●Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也试用 ●不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 ●欢迎大家 Pull Request 出题目,贴代码(Gist.Blog皆可):-) ●访问链接h

一个小程序能够反映的能力

程序员小郑刚步入岗位,但是在公司编码过程中没有受到专业的编码规范的培训,编写出来的程序虽然能够完成指定的功能但是比较不统一,偶尔会别出心裁的设计出自己的简化方法.老王这是从事了软件编码十多年了,现在都快到不惑的年龄了,在软件行业摸爬滚打十多年从事过多个行业,接触过不同公司的编码的规范,在软件代码编写中有独到的认识. 有一天有一个小功能的改动,由于这是一个非常重要的基础系统的功能变动,所以即便是一个小的功能变动公司上上下下都投入了非常高的重视程度.这天老王找到小郑告诉了需要修改这个系统并详细的描述

Python 练习冊,每天一个小程序

Python 练习冊,每天一个小程序 说明: Github 原文地址: 点击打开链接 Python 练习冊.每天一个小程序.注:将 Python 换成其它语言,大多数题目也试用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 欢迎大家 Pull Request 出题目.贴代码(Gist.Blog皆可):-) Talk is cheap. Show me the code.--Linus Torvalds 第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字.类似于微

mono for Android 环境配置(环境搭建+破解方法+运行一个小程序)

一.准备工作:下载相关软件工具,为搭建环境做准备. 哎!百度网盘无法分享,根据名称下载. 二.首先安装 jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008 这里选择安装jdk6,网上看到一篇文章说jdk7及以上,mono还没有支持,但是那篇文字一年前写的,目前 支不支持,不清楚.这里保险起见,安装jdk6,mono是支持的.    注意环境变量的配置,这里不详细描述.主要配置java_home,path,class_path. 三.安装mono-2.1