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’