perl面试例题一
Perl 第一阶段学习总结 1 use strict 和 use warnings 的作用?
use strict 什么场合要用 use strict? 当你的程序有一定的行数时,尤其是在一页放不下时,或者是你找不到发生错误的原因时。 为什么要用 use strict? 众多的原因之一是帮你寻找因为错误拼写造成的错误。比如错误使用了'$recieve_date' 变量,但实际上你在程序中已声明的是 '$receive_date' 变量,这个错误就很难发现。同样,use strict 迫使你把变量的范围缩到最小,使你不必担心同名变量在程序的其它部份发生不良作用。(尽管这是 my 的功能,但是如果你使用 use strict 的话,它会强迫你用 my 声明变量,来达到上述目的)。 ? 指定了use warnings;的话perl在编译的时候会将警告信息打印出来,否则不打印。 ? 2 perl注释的方法? ?(1)‘#’用于注释单行 ?(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’,’c’,’C’};? ##匿名引用 ? Print %$ra{‘a’};???? ##使用哈希的引用 ? Print $ra->{‘a’}; ? ? ?8 怎么查看引用的类型? ? 使用ref函数。Ref函数会先判读标量变量是否包含一个引用,然后再判读指向什么类型的引用。 $a = 10;??????? ## ref($a) 返回false $ra = $a;????? ##ref($ra) == ‘SCALAR’ $rarray = [‘a’,’c’];??? ##ref($array) == ‘ARRAY’; $rhash = {‘a’,’C’}; ##ref($rhash) == ‘HASH’ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |