快速业务通道

Perl直接入门详尽指南

作者 佚名技术 来源 互联网 浏览 发布时间 2012-01-15
量、数据、表达式、流程控制语句(包括条件、分支、循环)、函数、对象。具体到语言上,大部分的内容只是表达的形式不同而已。而Perl与C又有什么区别呢?

  首先要知道,Perl是一种脚本语言。所谓的脚本,就是没有主函数,从最开始一行一行的按照顺序解释执行(老版Basic不也是如此吗)。因此,尽管把你的思路转化为流程用Perl表达出来吧。

  其次,Perl的设计中参考了很多语言的长处,并避免了设计上的缺陷。因此Perl的很多语法你可能都会觉得似曾相识。我把Perl的语法总结了一下,和C语言做了一个简单的对比表格。表格左右两边的语句是C和Perl对应表达同一个功能各自的不同方式。如果读者有C语言的经验,相信看到这个对比可以很快的上手吧?
 

语法元素

C Perl

Perl语法说明

注释

/* … */

# …

只支持单行注释

变量

int a, b, c;

char c=’A’;

int x[10];

my ($a, $b, $c);

my $c='A';

my @x;

my %h;

声明使用my标示

表示值的变量以$开头,表示数组的变量以@开头,表示哈希表的变量以%开头。

声明可以省略(不建议)

字符串

char* h1=”hello\n”;

char* h2=”hello\\n”;

$h1=”hello\n”;

$h2=’hello\n’;

双引号解释内部的\n,而单引号则不解释

一维数组

int arr[10];

arr[0]=0;

for(i=0;i<10;i++)

arr[i]=i;

my @arr;

$arr[0]=0;

@arr[3..5]=(3..5);

数组声明以@标示

动态数组,不需要指定大小

数组下标从0开始

访问数组元素值的时候,要以$开头表示访问的是数值

[3..5]表示数组中下标为35之间的元素组成的数组

数组之间可以直接赋值

多维数组

int arr[10][10];

arr[0][1]=9;

my @arr;

$arr[0][1]=9;

Perl并不直接支持多维数组,而是以数组引用的方式间接支持。例如arr[0]的内容就是一个数组的引用地址。

指针

char c;

int* x=&c;

c='a';

printf(*x);

my $c;

my $x=\$c;

$c='a';

print $x;

\C中的&类似,意思是取引用

 

void hello() {

 printf(“Hello\n”);

}

void (*hi)()=hello;

(*p)();

sub hello{

       print "Hello\n";

}

my $hi = *hello;

&$hi;

&表示调用函数

*取函数的代码地址

不必用括号把参数括起来

调用时的括号也是可选的

条件语句

if (x>0) x=0;

x>0 ? x=0 : ;

if ($x>0) { $x=0; }

$x=0 if $x>0;

$x=0 unless $x<=0;

$x>0 ? $x=0 : ;

if 结构可以反转,意义不变,注意前句没有分号。

顾名思义, unless是“除非”的意思。这里的四个表达方式是等价的。注意第一种方式中,条件部分的圆括号和语句部分的花括号是不可省略的。

循环语句

foreach (@arry)

foreach my $key(@ary)

foreach $count (1..10)

for/while的语法都和C类似。

foreach关键字也可以用for,意义不变。

函数

int max(int x, int y)

{

  return x>y?x:y;

}

 

int n=max(1,2);

sub max

{

       my ($x, $y)=@_;

       return $x>$y?$x:$y;

}

my $n=max(1,2)

注意下划线”_”也是一个合法的变量名。而@_Perl内置的一个数组,内容为函数的参数。

my ($x, $y) 表示声明了一个有两个元素的数组,并将两个元素映射到$x$y上。

($x,$y)=@_;则表示两个数组之间的复制,@_中对应的元素的值就赋值给了$x$y.这是一个简便的写法,也可以这样写

my $x= Perl直接入门详尽指南 - 凌众科技

快速业务通道

Perl直接入门详尽指南

作者 佚名技术 来源 互联网 浏览 发布时间 2012-01-15
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

[0]; my $y= Perl直接入门详尽指南 - 凌众科技
快速业务通道

Perl直接入门详尽指南

作者 佚名技术 来源 互联网 浏览 发布时间 2012-01-15
content

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号

[1];

return是可选的,默认返回最后一个表达式的值

语法约束

1.       编译时打开编译器所有的警告选项

2.       使用lint工具

 

3.       perl –w myprogram.pl 打开运行警告开关,如果运行时Perl检查到了可能的错误,会显示警告信息,否则它默认是什么也不提示继续执行。

4.       #!/usr/bin/perl –w 在代码文件第一行中加入-w选项开关

5.       use strict; 使用严格语法约束

运行

编译后直接执行

 

1.       perl myprogram.pl 手工执行

2.       #!/usr/bin/perl

Unix下在代码第一行加入,然后给文件加上可执行的属性 chmod +x myprogram.pl,之后就可以用./myprogram.pl命令来运行。

3.       Windows下,安装ActivePerl的时候,已经将.pl后缀的文件和perl的解释程序关联起来了,因此直接双击文件图标就可以运行。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号