1-列表list指的是标题的有序集合, 而数组(array)则是存储列表的变量. 更精确地说,列表指的是数据,而数组指的是变量. 访问数组中的元素 ] = "yabba"; ] = "dabba"; ] = "doo"; $number = 2.71111; ]; #dabba 如果下标不是整数,会舍去小数. ] #如果不存在下标则返回 undef 特殊数组索引, 获得最后一个元素 ] = "one"; ] = 'last';…
37 print "\n----------------------------------_exercise_6_1--------------------------\n";     38 my %bless_function = ( #hash may be a lexical variable     39    "constructors" => "default_values",     40    "error_ha…
子程序定义和返回值 sub sum{ print "调用了子程序\n"; $a + $b; #后一行为返回值 } ; ; $s =∑ #34 调用子程序 子程序中的参数,参数固定(下面例子只能2参数),程序第一个参数为$_[0],第二个为$[1],依次类推 sub max { ] > ] ){ ]; }else{ ]; } } ,); #结果为15 子程序中私有变量 sub max { my($m,$n) = @_; } 限制参数长度 sub max{ ){ print &quo…
读取标准输入 chomp($line = <STDIN>); #去掉后面的换行 while (defined($line = <STDIN>)) { print "I saw $line"; } #上面代码简写 while (<STDIN>) { print "I saw $_"; } 来自钻石操作符<> while (defined($line = <> )){ chomp($line); print &…
$what ='steak'; print "fred ate $n ${what}s.\n"; 布尔值 如果是数字0为假, 如果是空字符串''为假, 如果即不是数字也不是字符串,那就先转成数字或字符串再行判断. 字符串'0'也为假 获取用户输入 $line = <STDIN>; 去除最右边换行 $text ="a line \n"; chomp($text); print $text; undef值 如果是数据相当undef值为0, 如果与字符串相加则…
文件内容: bash-2.03$ cat file_4_ex_ch7.txt anonymous attribute demolition grammar rules indices refernces lignAAlign, ligning..AABB 代码: 80 print "\n----------------------------------exercise_ch7_4--------------------------\n";     81 while(<>)…
第一章简介 问题与答案 这本书适合你吗? 为何有这么多的脚注? 关于习题和解答? 习题前标的数字是什么意思? 如果我是Perl讲师? “Perl”这个词表示什么意思? Larry为什么要创造Perl? Larry干吗不用其他语言? Perl算容易,还是算难? Perl怎么会这么流行? 现在的Perl发展得怎么样了? 哪些事情最适合用Perl来做? 哪些事情不适合用Perl来做? 如何取得Perl? CPAN是什么? 如何得到Perl的技术支持? 还有别的技术支持方式吗? 如果发现Perl有bug…
Perl语言入门: 斜线不是元字符,所以在不作为分隔符时不需要加上反斜线.…
第一章 简介 perl -v 文字处理,编写小型CGI脚本(Web服务器调用程序)的最佳语言 CPAN: Perl综合典藏网 shebang: #! /usr/bin/perl 或#! /usr/local/bin/perl perldoc 第二章 标量 数字 1.25 -1.2e24 3 61_300_100 0377 #八进制 0xff #十六进制 ob1111111 #十六进制 运算符 + - * / % ** 单引号和双引号 'hello\n' #\n两个字符 "hello\n"…
第四章 列表和数组变量 by flamephoenix 一.列表二.数组--列表的存贮  1.数组的存取  2.字符串中的方括号和变量替换   3.列表范围  4.数组的输出  5.列表/数组的长度  6.子数组  7.有关数组的库函数 一.列表  列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:().  注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值. …
---------第十四章 字符串与排序------------------- index查找子字符串 my $stuff = "howdy world!"; my $where = index($stuff, "wor"); #6 #返回首个字符匹配的位置,字符串第一个位置为0,上例即wor匹配的w位置 #无法匹配返回-1 my $here = index($stuff,"w",2); #返回2(从2+1个字符开始) my $there = i…
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl语法基础: (1)Perl程序由声明和语句组成 (2)Perl程序自上而下执行 (3)Perl语句以分号(:)结尾,包括循环判断等语句 (4)Perl没有严格的格式规范,可以根据自己喜欢的方式缩进 第一个Perl程序: (1)交互式编程 perl -e 'print "hellow, wold"' 使用-e选项来执行Per…
访问数组中的元素    $fred[0]   $fred[1] $number=2.75; print $fred[$number-1]  结果就是print $fred[1] 特殊的数组索引1.对索引值超过数组尾端的元素进行赋值,数组将会根据需要自动扩大 2.对最后一个元素索引值     例如数组名围rocks   则最后一个索引值为 $#rocks 列表直接量 list literal  (1,2,3)包含1,2,3,这三个数字的列表 (1..5)表示 1-5五个数字 ($m,17) qw简…
表达式真假值总结: 表达式不一定是逻辑表达式,但一定要得出真假值   假值:逻辑值为假 值为0 字符串为空 列表为空 undef 其他情况为真 1.if {} elsif {} else {} 2.unless : 与if条件含义相反.执行语句除非表达式为真.为真时退出,表达式是退出条件 3.while {表达式}{语句} 表达式为真时执行,是执行条件 认真设置条件为假的可能,否则无法退出 do{语句} while (表达式) 不管条件是什么,至少会执行一次 4.until {表达式}{语句}…
#! /usr/bin/perl use strict; use warnings; print "\n----------------------------------_substitutions_with_s///--------------------------\n";$_ = "He's out bowling with Barney tonight.";s/Barney/Fred/;print $_."\n";s/filehandl…
---- 第6章 哈希----------- 简介 键值对.键和值都是任意标量,但键总是会被转换成字符串. 键唯一,值可重复. 应用场景:一组数据对应到另一组数据时. 如找出重复/唯一/交叉引用/查表等 访问哈希元素 $name{'fred'} = 'peng'; $name{'barney'} = 'guo'; foreach my $person (qw(barney fred)){ print "you are $person $name{$person}.\n"; } #胖箭头…
----------第十章 其他控制结构---------------- unless结构 unless($fred =~ /\A[A-Z_\w*\z]/i){print "yes";} #等同 if(!($fred =~ /\A[A-Z_\w*\z]/i)){print "yes";} if($fred =~ /\A[A-Z_\w*\z]/i){}else{print "yes";} until结构 while的相反,条件为假时重复执行. 表达…
A.  手工安装 从CPAN下载了DBI模块1.13版的压缩文件DBI-1.13.tar.gz.假设放在/usr/local/src(一般需要编译安装的软件,都放在此目录下安装). # cd /usr/local/src   # tar xvzf DBI-1.13.tar.gz (这时候会创建一个去掉tar.gz这部分的文件夹)   # cd DBI-1.13 # perl Makefile.PL (生成makefile,无论什么包都是这个命令,什么包都会生成一个这个Makefile文件) # …
现有文件test.txt,内容为:"123\n456" 1,打开文本test.txt #!/usr/bin/perl open d,"test.txt"; d 为文件句柄,指向打开的文件 2,逐行读取文本test.txt #!/usr/bin/perl open d,"< test.txt"; while(<d>){ print $_; } close d; 结果:123 456 或者:print <d>; 结果:同…
hash 一.关联数组的形式 %h=('a',1,'b',2);         a是key 1是value    b是key  2是value 以%开头,()为空散列 %h=('a'=>1,'b'=>2);    更明显一些 用这个还可以省略引号  但默认全部都是字符串  当有数字的时候就不是你的本意了 元素形式:$h{'a'}       #注意用$ 元素为简单变量,用$. %h{2.5}  %{-1}  ${$ee} 都是可以的 小数  负数  简单变量都可以是key 二. 关联数组的赋…
1.列表也是数组的形式:(1,'a',2,3,4) 元素可以是任意类型,变量,表达式 2.空列表:() 单元素列表:(2)  .与值2不同 qw(1 $a str)   #qw是用空格作为分隔符,元素中不能有空格,否则视为两个元素,()可变为<> 3.范围运算符:.. 4.数组:列表的存储 形式:@a=(1,2,3) 与$a是不同的变量 @a的初始值是空 :() 元素形式:   $a[0]   #注意是$  美元符号 负索引:倒数第一是-1  $a[-1] 5.数组的赋值: @a=(1,2,3…
1.chop函数:删除标量变量或数组中每个字符的最后一个字 举个栗子: #!/usr/bin/perl $v = 'Flowers'; $r = chop($v); print "$v (without $r)\n";…
一.$ 简单变量:$          以$开头+字母或下划线 区分大小写,变量长度不限,没有关键字,但不能和默认变量重复 1.整数的表示: 12 12e2 #1200 -12 #-12 1_200_000     #perl可以使用下划线当做分隔符 数字还是1200000,但方便看 012           #八进制数,值为10 0x1f           #十六进制,值为31   f不分大小写 2.浮点数 11.4 0.3 .3 3. 5.4e2    e或E,+或-,e后面最多一到三位…
练习5-1 /* 依次把1.2.3.4.5 赋值给数组的每个元素并显示(使用for语句) */ #include <stdio.h> int main(void) { int i; ]; /* int[5]数组 */ ; i <; i++) /* 为数组元素赋值 */ v[i] = i ; ; i<; i++) /* 显示元素的值 */ printf("v[%d] = %d\n", i, v[i]); ; } 练习5-2 /* 依次把1.2.3.4.5 赋值给数…
一.算数运算符 **:是幂 结果不能超过数的范围 当指数为小数时 底数不能为负数 %:取余数  两边的操作数为整数,如果不是则要截取,把所有的小数部分去掉 注意:当一个字符串参加运算,需要转化为整数时,如果不能转化为整数则值为零, '2'+1=3   'a'+1=1 二.数字比较运算符 大于小于等于   :比较结果为真或非零 ,假或零 <=> : 比较运算   $a <=> $b 当a大于b时:值为1 当a小于b时:值为-1 当a等于b时:值为0 用这个运算符的时候,自动把操作数转…
练习4-1 #include <stdio.h> int main(void) { int no; int x; do{ printf("请输入一个整数:"); scanf("%d", &no); ) puts("该整数为0."); ) puts("该整数为正数."); else puts("该整数为负数."); printf("要重复一次吗?[yes···0/No···9]:…
练习3-1 #include <stdio.h> int main() { int x; int y; puts("请输入两个整数."); printf("整数A:"); scanf("%d", &x); printf("整数B:"); scanf("%d", &y); if (x % y) puts("B不是A的约数."); else puts("…
练习13-1 /* 打开与关闭文件 */ #include <stdio.h> int main(void) { ]; FILE* fp; printf("请输入你要打开的文件"); scanf("%s", s); fp = fopen("*s", "r"); /* 打开文件 */ if (fp == NULL) printf("该文件不存在\n"); else { printf("该…
练习11-1 /* 用指针实现的字符串的改写 */ #include <stdio.h> int main(void) { "; printf("p = \"%s\"\n", p); p = ; /* OK! */ printf("p = \"%s\"\n", p); ; } 只能输出“56”,因为p指向的地址+1后,整体往后移了一位,所以读到的内容从“456”变成了“56\0". 练习11-2…
练习7-1 #include <stdio.h> int main() { int n; printf(,, ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4再减去-1所以显示为3,最后是n+2为6 printf(, , ));//此行显示结果是 4 7 4 因为1的字节是4,double的字节长是8 -1是7,把(n+2)括起来之后使其为一个值,所以是4: printf(, ), sizeof (n + 2.0) );//此行结果是 4 8 8 因为1的字节是4…