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’,’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’

转载于:https://my.oschina.net/u/249000/blog/43032

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值