您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Perl語言中有哪些變量類型,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
一、Perl語言之標量
我們先來看看標量,標量是Perl語言中最簡單的一種數據類型。這種數據類型的變量可以是數字,字符串,浮點數,不作嚴格的區分。在使用時在變量的名字前面加上一個“$”,表示是標量,相當于scalar中的***個S。
使用以下格式進行定義:
$myfirst=123; #數字123
$mysecond="123";#字符串123
$mythird="$myfirst,$mysecond";#字符串123,123
$myforth='$myfirst,$mysecond';#字符串$myfirst,$mysecond
數字類型的標量可以使用0開頭代表是8進制,用0x開頭代表是16進制。例如:
$var1=017;#十進制的15
$var2=0xf;#十進制的15
還可以使用下面的格式:
$var3=123_456_7; #1234567
浮點數可以使用以下定義方式:
$var4=3.4;
$var5=4.3e+21;
$var6=234E345;
Perl中的字符串使用一個標量來表示,定義方式和c很像,但是在Perl里面字符串不是用0來表示結束的。而且使用雙引號和單引號定義的字符串是不一樣的。使用雙引號定義的字符串里面出現的變量名會進行替換,而且可以出現“”等控制字符。而用單引號定義的就不可以了使用反斜杠引導的控制命令了(當然還可以使用反斜杠引道單引號和反斜杠),文本會按照字符串原來的樣子保存。
但是用單引號定義可以使用多行文本,如下所示:
$var7='這是一個使用
多行字符串文本
的例子';
$var8='''; #字符串'
二、Perl語言之數組
在Perl中數組使用“@”引導,“@”的意義應該是相當于array中的***個a吧(嘻嘻,猜的)。數組初始化使用()。我們可以采用如下方法初始化數組:
@var9=(1,2,3,4,5);
而當引用數組中的元素時則使用下面的格式:
$var10=$var9[1];
數組前面的引導字符變成了“$”,表示這里是引用數組中的元素。
如果使用“@”作引導字符,那么剛才的例子就會返回數組的長度。例如:
$length=@var9; #則$length會返回數組長度也就是數組的元素個數5
三、Perl語言之哈希表(hash)
哈希表是一種很特別的數據結構,我在學習數據結構時見過,叫做散列(Set),在使用Perl之前,我在borlandC++中見過一種類似的class,也叫做Set。在JavaScript中也提供了相似的數據結構,叫做關連數組AssociatedArray。
哈希表用“%”引導。定義方法如下:
%var11=("hello"=>"哈羅","nihao"=>"你好");
使用方法如下:
print$var11{"hello"};#輸出哈羅$var11{"nihao"}="你好";
還可以使用下面的方法定義:
%var12=("hello","哈羅","nihao","你好");
這個方法的結果與上面的結果相同,但是我還是喜歡***種方法,而且建議你也使用***種方法。
四、Perl語言之句柄
句柄是一種特殊的數據,用來保存系統資源的指針,例如文件,目錄,管道,socket等等。在***的Perl中,實際上可以不使用這種數據。句柄類型沒有引導字符。一般情況下大家習慣使用大寫字母來標明句柄類型。例如下面的例子打開一個文件,讀出一行,然后關閉。
open(FILEHANDLE,"test.htm");
$templine=<FILEHANDLE>;
close(FILEHANDLE);
這里<>起從句柄中讀出一行的作用。
五、Perl語言之指針
Perl里面的指針分為兩種類型,一種成為軟指針,另一種稱為硬指針。下面將主要介紹一下硬指針。在Perl里面使用“”來生成指針。如下面的例子:
$vavr13="hello"; $pointerto=$var13;
這時$pointerto就是一個指向$var13的指針了。訪問指針指向的數據可以使用下面的方法。print$$pointerto;也就是加上一個$就可以了。Perl里面的指針與c里面的不同,Perl里面的指針是有引用計數的。也就是說,如果一個數據可以記住自己被幾個指針引用,當沒有指針引用時這個數據會自動釋放內存。
看完上述內容,你們對Perl語言中有哪些變量類型有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。