perl面试例题一

Perl 第一阶段学习总结
数组

1 use strict use warnings 的做用?函数

use strict 什么场合要用 use strict学习

当你的程序有必定的行数时,尤为是在一页放不下时,或者是你找不到发生错误的缘由时。spa

为何要用 use strictci

众多的缘由之一是帮你寻找由于错误拼写形成的错误。好比错误使用了'$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’

相关文章
相关标签/搜索