Perl 第一阶段学习总结
数组
1 use strict 和 use warnings 的做用?函数
use strict 什么场合要用 use strict?学习
当你的程序有必定的行数时,尤为是在一页放不下时,或者是你找不到发生错误的缘由时。spa
为何要用 use strict?ci
众多的缘由之一是帮你寻找由于错误拼写形成的错误。好比错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。一样,use strict 迫使你把变量的范围缩到最小,使你没必要担忧同名变量在程序的其它部份发生不良做用。(尽管这是 my 的功能,可是若是你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。hash
指定了use warnings;的话perl在编译的时候会将警告信息打印出来,不然不打印。编译
2 perl注释的方法?ast
(1)‘#’用于注释单行test
(2) 注释一段变量
=cut; #注释=cut 包围的代码
…
…
…
=cut;
Or
<<TXT; #注释<<TXT…TXT包围的代码
…
…
…
TXT
Or
__END__ #注释此行以后的全部代码
…
…
…
Or
__DATA__ #可将__DATA__以后的代码做为程序的参数列表
…
…
…
3 单引号和双引号的区别?
单引号不能内插且只能转义’\’,’’’两个字符。
双引号能够内插和转义全部字符。
4 print @array;print “@array”;print @array . “\n”有什么区别?
Eg:my @array = qw/a b c/;
Print @array; # abc
Print “@array” # a b c “内插时,会在数组各个元素之间自# 动添加分隔用的空格(小骆驼书原话)”
Print @array . “\n” # 3 ‘.’是标量操做符,因此@array是
#标量上下文。数组的”名称”在列表上下文中
#产生元素列表,在标量上下文中返回数组中
#元素的个数。
5 while(<>) 和forreach(<>)的区别?
While(<>)一次处理一行输入。
Foreach(<>) 一次处理所有输入。
6 钻石操做符的做用?
<> 的是另外一种读取输入的方法,它是 ”行输入“ 操做符(<STDIN>) 的特例,它并不专门从键盘那获取输入,而还能够从用户指定的位置读取(实际上是@ARGV列表指定的文件)
Eg: while(<>){print “$_”;} ##保存为test
运行程序
$ perl test ##会在标准输入中读取一行输入
$perl test f1.txt ###会在文件’f1.txt’中逐行读取内容
7 声明和使用引用的方法?
标量的引用
$a = 10;
$ra = \$a; ###声明标量引用
Print $$ra; ##使用标量的引用
数组的引用
@a = qw/a b c/;
$ra = \@a; ###声明数组引用
$ra = [‘a’,’b’,’c’]; ##匿名引用
Print @$ra[1]; ##使用数组的引用
Print $ra->[1];
哈希数组的引用
%a = (a,A,b,B,c,C);
$ra = \%a; ##声明哈希引用
$ra = {‘a’,’A’,’b’,’B’,’c’,’C’}; ##匿名引用
Print %$ra{‘a’}; ##使用哈希的引用
Print $ra->{‘a’};
8 怎么查看引用的类型?
使用ref函数。Ref函数会先判读标量变量是否包含一个引用,而后再判读指向什么类型的引用。
$a = 10; ## ref($a) 返回false
$ra = \$a; ##ref($ra) == ‘SCALAR’
$rarray = [‘a’,’b’,’c’]; ##ref($array) == ‘ARRAY’;
$rhash = {‘a’,’A’,’b’,’B’,’c’,’C’}; ##ref($rhash) == ‘HASH’