Perl直接入门详尽指南

芝麻开门

  说起编程语言,简单的来说无非就是这样几个必不可少的基本元素:变量、数据、表达式、流程控制语句(包括条件、分支、循环)、函数、对象。具体到语言上,大部分的内容只是表达的形式不同而已。而Perl与C又有什么区别呢?

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

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

语法元素 数据挖掘交友

CPerl

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 ”; 数据挖掘工具

char* h2=”hello\n”;

$h1=”hello ”; 数据挖掘交友

$h2=’hello ’;

数据挖掘研究院

双引号解释内部的 ,而单引号则不解释 数据挖掘交友

一维数组

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 ”); 数据挖掘论坛

} 数据挖掘实验室

void (*hi)()=hello; 数据挖掘实验室

(*p)(); 数据挖掘交友

sub hello{ 数据挖掘实验室

       print "Hello "; 数据挖掘论坛

}

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=$_[0]; my $y=$_[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的解释程序关联起来了,因此直接双击文件图标就可以运行。 数据挖掘实验室


  需要说明的是,在Perl的世界中有一句名言“条条大路通罗马”, 这句话的意思是说同样一件事情Perl允许你用很多种不同的方式去做。因此上表的例子风格是按照C的习惯来写的,并且为了简化起见,只是挑选了与C相似的内容。事实上,Perl包含了很多C没有的东西,例如内置的Hash表、队列、正则表达式、格式定义等等。
数据挖掘交友

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:Perl直接入门详尽指南
下一篇:Perl直接入门详尽指南
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • Perl 常用函数
  • Perl直接入门详尽指南
  • 用Perl生成随机密码
  • When perl is not quite fast enough
  • Perl简单模块指南
  • Perl DBI连接MySQL数据库
  • 我对 Catalyst 的理解和介绍
  • cgi学习简明教程
  • 我对 Catalyst 的理解和介绍
  • 如何使用strict和warnings
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
    数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静