perl基本语法.doc

上传人:汽*** 文档编号:545729520 上传时间:2023-06-03 格式:DOC 页数:26 大小:193.52KB
返回 下载 相关 举报
perl基本语法.doc_第1页
第1页 / 共26页
perl基本语法.doc_第2页
第2页 / 共26页
perl基本语法.doc_第3页
第3页 / 共26页
perl基本语法.doc_第4页
第4页 / 共26页
perl基本语法.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《perl基本语法.doc》由会员分享,可在线阅读,更多相关《perl基本语法.doc(26页珍藏版)》请在金锄头文库上搜索。

1、Perl6基本语法原文地址:http:/ Perl6正在迅速的发展,所以语法也会总有变化。在下文中的部分语法可能在你看这篇文章的时候已经过时。虽然如此,我们还有一些基本的资料可以查看。如果你继续看以下的内容以后你只需要花费极少数的时间用来看改变情况(查看开发文档 Perl6启示录12以后的内容.译者注:查看Perl6大纲也是非常好的决定很可惜的是现在还没有完成中文,Perlchina的Fayland和台北推广组兄弟们正在努力中文版)。 从现在开始装的傻B一下,告诉你自己其实你一点也不懂Perl。你隐约记得Perl有一些特别,所以你想证实你的想法。你考虑到Larry Wall可以解释你的疑虑,所

2、以你来到书店买了一本”Perl语言编程”。这是最新版的书讲述了6.0.1版。它并未描述Perl6有那些新功能,而是从入门开始讲解,于是你开始为你的好奇心猛啃这本书,就象小孩在生日上得到他想要已久的望远镜。现在,这篇文章就是让你看到未来的望远镜。 在本章的以后时间里我们将分析Perl6的各种特色并且来评价那些是你喜欢的那些是你不喜欢的。好!现在开始暂退一步,放掉那些细节,我们从整体上开始讲。 变量 o 标量(Scalar) o 数组(Array) o 对儿(Pair) o 哈希(Hash) o 引用(References) o 变量与上下文 标量上下文 列表上下文 哈希列表上下文 o 道具与特性

3、 o 类型 操作符 o 赋值与捆绑 o 算术操作符 o 字符串操作符 o 列表操作符 o 比较操作符 o 逻辑操作符 o 上下文强制符 o 位操作符 o 条件操作符 o 超连符 o 连接符 o 聪明匹配 标量匹配 列表匹配 数组匹配 哈希匹配 连接匹配 对象匹配 子程序匹配 o 引用(或不) o 压缩操作符 结构控制 o 选择 IF声明 unless声明 switch声明 o 循环 while循环 简单循环 for循环 破坏循环 o 块 my,our,temp,let 特性的块 异常处理 加入Perl6的开发队伍 译者尾 变量 变量几乎是所有计算机语言的基础部分,它把数据块吸入到自己身上使用在

4、周围的环境,在不同的场合中变化,并且突然出现在一些新的位置。这个数据库块的值可能是:字符串、数字、其他的,或是复杂的数据结构。变量正好是找到这些数据的名字。Perl6有三种变量模式他们是:标量(Scalar),数组(Array),哈希(Hash)。他们三个每种都在变量的名字前有一个印记(符号):标量是$,数组是,哈希是%。这个印记从视觉上可以清楚的告诉使用者变量的举止行为。其实,他们三种的差别非常小。从本质上来讲每种变只是一个装数据的罐子,不管这个变量是一种集合还是单独的一个(看看下面的内容吧,你就明白为什么上面要这么说了)。标量标量是一个全能的罐子。他们可以存储字符串、整数、浮点数与各种对象

5、的引用。举例:$string = 欢迎参加perlchina的Perl中文化你可以得到奖励;$int = 42;$float = 3.14159;$arrayref = Perlchina, Perl中文化, 奖励 ;$hashref = Perlchina = 362, Perl中文化 = 1574, 奖励 = 28 ;$subref = sub print $string ;$object = Android.new;一个文件句柄也仅仅是一个普通标量模式的普通对象:$filehandle = open $filename;数组数组变量存储简单的一排标量数值。通过数组的数字索引可以得到这些变

6、量。0表示第一个值。符号是变量名字的一部分无论变量怎么使用都不会被取下来:crew = ( Perlchina, Perl中文化, 奖励 );$second_member = crew1; # Perl中文化获得一个数组有多少个元素你可以使用.elems方法。.last方法用来返回这个数组最后一个序列是哪个。$count_elements = crew.elems;$last_index = crew.last;对儿对儿(Pairs)存储了单一的键/值。他们没有一个独立的印记,因为他们很少情况被使用,所以他们可以被存储在标量、数组、哈希中。对儿的结构使用=来创造,”左面是键”=“左面是值”。$

7、pair = key = value;改变选择语法也可以用来创造一个对儿,在一个冒号的后面填写“键”在括号的里面填写“值”:$pair = :key(value);这个选择语法是在子程序调用中经常使用的语法,你可以查看”骆驼与鹦鹉的本质第二版本”(Perl6 and Parrot Essentials,2nd Edition)的第五章5.3.1。哈希哈希中存放的是无序的标量值,使用”键”进行索引存储与调用。你可以轻松的产生一个哈希列表并存储匿名的对儿:%hash = ( Zaphod = 362, Ford = 1574, Trillian = 28 );每个”键”用来识别一个值,他们可以是字

8、符串或对象,虽然对象”键”可能受到一些功能限制。为了性能”对象键”必须被声明才能使用。任何对象成为哈希结构的”键”必须有一个.id的方法,这个方法将一对一的返回对象实例的”值”这样可以避免哈希中冲突。这个方法在所有的基类中是默认的,所以你定义自己的.id方法时只需要担心唯一性就够了。$age = %hashZaphod; # 字符串$age = %hash$name; # 字符串变量$age = %hash$person; # 对象在文字字符串键旁边必须要有引号,而当你调用一个子程序来获得一个键时,这个子程序名不用像字符串键一样(必须去掉引号):$age = %hashget_key; # s

9、ubroutine call如果你特讨厌输入引号,可以在键旁用自动引用符(双尖括号)来代替常用引用符(波浪号):$age = %hashZaphod; # string$age = %hash; # ASCII equivalent在列表上下文中,一个哈希会返回一列有键/值的对儿(Pairs)对象。而.kv方法会从哈希返回一个”平整列表”。看把一个哈希直接给到一个数组:译者注:一般的当你把(“Perlchina” =“中文化”)变成(“Perlchina”,”中文化”)后者就属于平整列表,平整列表也是数组中存储数据的格式。后文中这个单词还会出现。 pairs = %hash;看,产生了一个全是

10、对儿的数组:(pair1, pair2, pair3, etc . . . )然而关系被变成平整列表:flat = %hash.kv;就变成了这个样子:(key1, value1, key2, value2, etc . . . ).keys方法将返回在哈希中的所有“键”的列表。.values方法将返回在哈希中的所有“值”:keys = %hash.keys;values = %hash.values;引用引用的功能在Perl6中重要性更明确了。在引用与普通变量之间有一个很小的区别,并且在自动处理引用或解除引用的某些必要时才会被使用到。创造一个数组或哈希的引用并不需要什么特别语法,你只需要简单

11、的把他们赋给一个变量就可以了:$arrayref = array;$hashref = %hash;在很多上下文关系里引用将会偷偷的被接触,所以使用数组索引或哈希的“键”来访问他们的数值你只需要这样明白的做:$arrayref1$hashrefZaphod在数组引用或哈希引用中调用方法就象一直在操作哈希和数组一样。指出“引用后面的数据类型或对象”测试在这个特别的引用中哪个方法可以使用,那些方法做什么了,无论如何引用可以支持这种连接的访问:$arrayref.elems$hashref.keys通过引用可以很容易的执行带有参数的子程序。当然参数可以是空的,但是括号是必须有的:$subref($a

12、rg);数组引用与哈希引用有个特别语法 ( . . . 和 % . . . ) 可以在上下文中解除他们的引用:array = $arrayref;# orarray = $arrayref;通常一个数组引用如果赋给了另外一个数组将会产生只有这个单一数组引用的新数组。如果你想把所有的$arrayref内容都给到array你必须先解除这个引用。变量与上下文在:$、%印记开头的变量上下文有一个明显的区别。$开头使用标量上下文,开头使用列表上下文,%开头使用哈希上下文1。1Perl6里不仅仅只有这三种上下文。一个更为详细的讨论请参看”骆驼与英文的本质第二版4.2.7部分或以后的章节”。 标量上下文任何

13、一个数组或列表被标量上下文求值将得到一个数组引用。这里有一个数组来说明这句话的含义:array = ( Zaphod, Ford, Trillian );$arrayref = array;一个列表:$arrayref = ( Zaphod, Ford, Trillian );或是一个外部的匿名引用:$arrayref = Zaphod, Ford, Trillian ;在上面的这个标量变量将正确的输出相同的结构:一个数组引用也会有三个元素。列表的结构符逗号的功能在这个标量上下文当中有同样的效果。小括号只表示一小群。当一个单独的元素被放在小括号内并且赋给了一个标量上下文,它将成为典型的标量值:

14、$value = (20);如果你想建立一个只有一个元素的数组索引,使用方括号( . . . ) 来创造一个匿名数组的引用:$arrayref = 20;一个看起来象哈希的内容被赋给了一个标量变量,这样它就产生了一个排列整齐的对儿数组,下面这种方法就是:$pair_list = ( Zaphod = 362, Ford = 1574, Trillian = 28 );如果要使用哈希引用在标量上下文中,你必须使用.明确的表示出来这个结构:$hashref = Zaphod = 362, Ford = 1574, Trillian = 28 ;列表上下文变量使用作为印记将产生”平整列表”上下文。这个意思是如果你赋一个数组给另外一个数组,那么这些元素会很顺利的从原来的数组一个一个的复制到新数组中。这个结果就是两个不同结构的数组将包含有一样的值:copy = original;一个列表同样也使用平整列表上下文。把一个数组赋给一个平整的列表并且把数组中每个元素按照前后顺序给到列表。如果数组的元素比列表多,那么多余的部分将自动被抛弃:($first, $second, $third

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号