语法元素 数据挖掘交友 | 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
”; 数据挖掘工具 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]表示数组中下标为3到5之间的元素组成的数组 数据挖掘工具 数组之间可以直接赋值 |
多维数组 数据挖掘研究院 | 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的解释程序关联起来了,因此直接双击文件图标就可以运行。 数据挖掘实验室 |