Perl學習筆記 Perl變量的認識
本文和大家重點學習一下Perl變量的相關(guān)知識,Perl中的變量可以通過操作符(如+或.等)來產(chǎn)生新的變量。你可以從文件和設(shè)備中讀取變量,也可以將其輸出。
Perl學習筆記 Perl變量的認識
Perl標量的學習
任何語言都有Perl變量,Perl變量在Perl中簡單的分為標量和組數(shù)Perl變量.
標量:表示單個的量,即英文中所說的單數(shù).
例如:
- $name="Hello"';
- $age=18;
- $price=123.88;
- $price=343_333_333.898;
都是一個標量,Perl對數(shù)字標量在計算機中采用浮點數(shù)形式存貯。通常浮點數(shù)的精度是不夠準確的。這點需要特別注意。
下面是一個例子:
- #!/usr/local/bin/perl
- $value=9.01e+21+0.01-9.01e+21;
- print("firstvalueis",$value,"\n");
- $value=9.01e+21-9.01e+21+0.01;
- print("secondvalueis",$value,"\n");
- ---------------------------------------------------------
- $program3_3
- firstvalueis0
- secondvalueis0.01
可以看到,不同的運算順序可能導致的結(jié)果不一樣!在Perl中十進制數(shù)字用0x開頭表示.0開頭表示一個8進制數(shù)。Perl對數(shù)學運算的操作符有:
算術(shù)操作符:+(加)、-(減)、*(乘)、/(除)、**(乘冪)、%(取余)、-(單目負)
(1)前面幾個不用說了吧.說一下乘冪這里需要注冊,基數(shù)不能為負數(shù).
(2)單目負又是什么意思?他實際上就是一個負號。就是數(shù)學中的負數(shù)表示符。
Perl變量的算術(shù)比較符:
==(相等),<(小于),>(大于),!=(不等于),還有一個<=>(表示可以取三個數(shù)-1,0,1);
標量除了是一個數(shù)字,字符串之外,還可以是其它復雜類型的引用.這點請暫時記住.我將在后面詳細說明這個問題.
現(xiàn)在來說下字符串,Perl采用unicode表示一個數(shù)值,這就意味著和java一樣,可以表示世界上任何一個國家的語言文字,對于字符串的運算符有
.(相連)
比較符:lt(小于),gt(大于),ne(不等于),eq(等于),le(小于等于),ge(大于等于),需要說明的的是。字符串的運算是按Ascii來進行運算的。就是說a(Ascii值為97),A(ASCII值為65),結(jié)果就是:agtA
另一種Perl變量叫做數(shù)組Perl變量.數(shù)組大家都知道,表示一組數(shù)據(jù)的集合.數(shù)據(jù)型可以分為有序的數(shù)組和無序的列表.他通常相當于英語中的復數(shù).還有一種叫散列.他是一種特殊的數(shù)組.用Key+value的形式來表示.相當于Java中的Map.是按鍵值對來存放的.
我們用$表示一個標量,用@表示一個列表和數(shù)組.用%表示一個散列.
舉例說明:
@lines=("a","b","c");
這樣就定義了一個數(shù)組,他里面有三個元素abc,定義數(shù)組時用()號把中間元素包擴起來.里面用,號分開,也可以寫成這樣:@lines=qw(abcd);
注意用qw定義時,里面不能寫,號.這點請記住它!,而且qw里面只能是字符的原型,比如說,你給成這樣:$a="a";@lines=qw($abcd);
將$a這個Perl變量傳進來,你的目的是這樣,但是我告訴你這達不到你希望的效果.
他會原封不動的給你顯示出來.這也正好說明了這里不能給abcd加個雙引號.
%person表示一個散列.
要對這個散列進行給值.使用$person{"name"}="Hello";
也可以使用%person=("a","b","c","d")這樣的形式,我們說過,散列表示一個key/value的集合,所以perl會將這樣的列表形式的數(shù)組按照key/value進行轉(zhuǎn)換.每兩個一組,前面是鍵,后面是值.
當然這樣的形式并不好看.
我們還可以寫成;%person=("a"=>"b","c"=>"d").
你可以直接把一個數(shù)組表示的Perl變量給一個散列.用(),你也可以把一個散列的具體值指向另一個散列.
%person{"a"}={
"name"=>"zhangsan",
"age"=>"23",
}
通過$person{"a"}{"name"}訪問到zhangsan;
不僅如此,你還可以將一個散列的具體值指向一個數(shù)量.
%person{"a"}=["a1","a2","a3"];
通過$person{"a"}[0]訪問到a1;
有了這樣的機制我們很容易建立出類似多維數(shù)組一樣的東西!好了,是不是很簡單呢?
【編輯推薦】

















